Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужно заменить спецсимволы в строке  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 538
Как заменить в строке спецсимволы \/?&
select NameArticle1 from article
в NameArticle1 есть спецсимволы которые нужно прибить.
5 июл 12, 16:19    [12823387]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Glory
Member

Откуда:
Сообщений: 104760
Открыть уже для себя список всех строковых функций TSQL
5 июл 12, 16:21    [12823401]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 538
Glory
Открыть уже для себя список всех строковых функций TSQL

Я открыл функцию replace но она работает для одного спецсимвола, а у меня их несколько.
5 июл 12, 16:25    [12823427]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37050
Andrew_vb1110
Glory
Открыть уже для себя список всех строковых функций TSQL

Я открыл функцию replace но она работает для одного спецсимвола, а у меня их несколько.
Функцию replace можно вызывать более одного раза.
5 июл 12, 16:26    [12823434]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrew_vb1110
Я открыл функцию replace но она работает для одного спецсимвола, а у меня их несколько.

А несколько раз использовать replace религия не позволяет ?
5 июл 12, 16:26    [12823435]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 538
Гавриленко Сергей Алексеевич
Andrew_vb1110
пропущено...

Я открыл функцию replace но она работает для одного спецсимвола, а у меня их несколько.
Функцию replace можно вызывать более одного раза.

Это как например? Примерчик плиз
5 июл 12, 16:29    [12823454]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
Andrew_vb1110
Гавриленко Сергей Алексеевич
пропущено...
Функцию replace можно вызывать более одного раза.

Это как например? Примерчик плиз
Есть ли у кого готовая функция перевода (транслит) с руского на английский
5 июл 12, 17:15    [12823763]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 538
Гавриленко Сергей Алексеевич
Andrew_vb1110
пропущено...

Я открыл функцию replace но она работает для одного спецсимвола, а у меня их несколько.
Функцию replace можно вызывать более одного раза.


Написал, но получилось очень жутко:
LEFT (replace(replace(replace(replace(replace(replace(replace(a.NameArticle1,'&',''),'/',''),'\', ''), '№', ''), '`', ''),'-',''),'+',''), 18) as ITEM

как то попроще хочется :-)
5 июл 12, 19:59    [12824653]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Crimean
Member

Откуда:
Сообщений: 13148
попроще - это на клиенте или через CLR. строки месить - как бы не совсем для сиквела
5 июл 12, 20:20    [12824740]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
Andrew_vb1110
Гавриленко Сергей Алексеевич
пропущено...
Функцию replace можно вызывать более одного раза.


Написал, но получилось очень жутко:
LEFT (replace(replace(replace(replace(replace(replace(replace(a.NameArticle1,'&',''),'/',''),'\', ''), '№', ''), '`', ''),'-',''),'+',''), 18) as ITEM

как то попроще хочется :-)
Вот это - самый оптимальный, самый быстрый вариант.
5 июл 12, 20:23    [12824751]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Andrew_vb1110
Member

Откуда: Симферополь
Сообщений: 538
iap, А как сюда воткнуть символ ' не получается у меня :-(
5 июл 12, 21:22    [12824966]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
Andrew_vb1110
iap, А как сюда воткнуть символ ' не получается у меня :-(
REPLACE(a.NameArticle1,'''','')
5 июл 12, 21:27    [12824983]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
может так
когда мне помогли

DECLARE @t CHAR(100), @x CHAR(1000);
SELECT @t='!@#$%^&', 
           @x='aaaa@fdfdf%ioipo&';

SELECT @x=REPLACE(@x, SUBSTRING(@t,number,1),' ')
FROM master.dbo.spt_values
WHERE type='P' AND number>0 AND number<=LEN(@t);

SELECT @x;
5 июл 12, 23:13    [12825432]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
michael R
может так
когда мне помогли

DECLARE @t CHAR(100), @x CHAR(1000);
SELECT @t='!@#$%^&', 
           @x='aaaa@fdfdf%ioipo&';

SELECT @x=REPLACE(@x, SUBSTRING(@t,number,1),' ')
FROM master.dbo.spt_values
WHERE type='P' AND number>0 AND number<=LEN(@t);

SELECT @x;
А теперь то же самое для всех записей таблицы article
6 июл 12, 09:30    [12826412]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
А теперь то же самое для всех записей таблицы article


а где таблица построчно ??
6 июл 12, 23:21    [12831951]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
michael R
Member

Откуда: из-за границы
Сообщений: 2113
А теперь то же самое для всех записей таблицы article

функция .....
6 июл 12, 23:27    [12831979]     Ответить | Цитировать Сообщить модератору
 Re: Нужно заменить спецсимволы в строке  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
michael R
функция .....
Скалярка?
Не удивлюсь если будет в 10 раз тормознее чем тупо 10 Replace-ов.
Хотя есть вариант через XML агрегатку...

Но согласен с Crimean на все 100. Это дело клиента - отображать в правильном виде.
А ещё главное не допускать мусор в базе.
7 июл 12, 00:33    [12832156]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить