Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Функция replace / 6 сообщений из 6, страница 1 из 1
08.02.2021, 06:47
    #40043127
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция replace
Доброго дня. Есть пример таблицы:

Код: sql
1.
2.
3.
4.
5.
declare @t table (pole1 varchar (100))

insert into @t 
values 
('машина №1'), ('авто № 132'),('экскаватор №67'),('грузовик №523 и велосипед № 1'),('комбайн №902')



Необходимо: заменить все значения с № без пробела на значения с № с пробелом.

Сделала так, но мне кажется, есть какой-то другой способ, значения после № могут быть любые от 1 до 9. Сделала для примера для 3 значений.

Код: sql
1.
select pole1, replace(replace(replace(pole1,'№5', '№ 5'),'№9','№ 9'),'№1','№ 1') as result from @t



Это рациональное решение, или есть более правильный способ?

Всем спасибо за ответы.
...
Рейтинг: 0 / 0
08.02.2021, 06:53
    #40043128
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция replace
Настенька,

Код: sql
1.
replace('№ ','№')


же. Надо заменить номер с пробелом на просто номер, берите и заменяйте на здоровье. Зачем конкретный номер указывать?
...
Рейтинг: 0 / 0
08.02.2021, 06:59
    #40043129
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция replace
Наоборот надо, №1, заменить на № 1, №2, заменить на № 2.
Т.е. значения № без пробела число, заменить на № с пробелом число.
Какое число будет стоять после знака № - я не знаю.
...
Рейтинг: 0 / 0
08.02.2021, 07:45
    #40043136
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция replace
Сперва замените '№ X' на '№X' , а потом наоборот.
Код: sql
1.
REPLACE(REPLACE(column, '№ ', '№'), '№', '№ ')
...
Рейтинг: 0 / 0
08.02.2021, 07:47
    #40043137
crutchmaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция replace
Настенька
Наоборот надо

Приведите всё к одному виду, а потом вставьте пробел. Т.е. сначала избавьтесь от пробелов после №, а потом добавьте один.
Код: sql
1.
replace(replace(pole1,'№ ','№'), '№', '№ ')


Надеюсь у вас нет двойных пробелов и вы так нормализуете сырые данные.
...
Рейтинг: 0 / 0
08.02.2021, 10:00
    #40043168
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция replace
Вы гении, как все просто оказалось. Большое вам спасибо. :)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Функция replace / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]