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

Код: 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
Функция replace
    #40043128
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенька,

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


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

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


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


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