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

Откуда: Израиль. Хадера.
Сообщений: 198
Подскажите пожалуйста, как выбрать строки из таблицы в поле Rus (NVARCHAR) которых имеются знаки [ или ]

Пробовал вот так:
SELECT * 
FROM  RootHeb 
WHERE Root like '%[%'

Но не получил ни одной строки.

Спасибо!
Евгений Боуден
29 июл 11, 10:06    [11043252]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать строки в поле (NVARCHAR) которых содержится знак "["  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
SELECT * 
FROM  RootHeb 
WHERE Root like '%[[]%';
Об этом в BOL в теме про LIKE написано.
Такой же приём сработает для '_' и '%'
29 июл 11, 10:08    [11043266]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать строки в поле (NVARCHAR) которых содержится знак "["  [new]
evgenybe
Member

Откуда: Израиль. Хадера.
Сообщений: 198
iap
SELECT * 
FROM  RootHeb 
WHERE Root like '%[[]%';
Об этом в BOL в теме про LIKE написано.
Такой же приём сработает для '_' и '%'


Спасибо!
29 июл 11, 10:10    [11043279]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать строки в поле (NVARCHAR) которых содержится знак "["  [new]
evgenybe
Member

Откуда: Израиль. Хадера.
Сообщений: 198
iap
SELECT * 
FROM  RootHeb 
WHERE Root like '%[[]%';
Об этом в BOL в теме про LIKE написано.
Такой же приём сработает для '_' и '%'


Вот это у меня сработало:
Update RootHeb 
SET Accent = STUFF(Accent, PATINDEX('%[[]%', Accent), 1, '<span style="color:red">')
WHERE Accent like '%[[]%'


А вот это нет:
Update RootHeb 
SET Accent = STUFF(Accent, PATINDEX('%[]]%', Accent), 1, '</span>')
WHERE Accent like '%[]]%'

Подскажите, please, в чем причина
29 июл 11, 10:47    [11043475]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать строки в поле (NVARCHAR) которых содержится знак "["  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
evgenybe
Подскажите, please, в чем причина
Причина в том, что Вы не различаете левую и правую квадратные скобки.
Для правой так делать не надо.
Кроме того, раз у Вас юникодные типы везде, то, строго говоря,
все литеральные строки надо бы предварять буквой N.
А то у Вас везде неявное преобразование типов происходит.
29 июл 11, 10:51    [11043503]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать строки в поле (NVARCHAR) которых содержится знак "["  [new]
evgenybe
Member

Откуда: Израиль. Хадера.
Сообщений: 198
ОК
Исправил.
29 июл 11, 11:41    [11043905]     Ответить | Цитировать Сообщить модератору
 Re: Как выбрать строки в поле (NVARCHAR) которых содержится знак "["  [new]
Teufell
Guest
Как такой вариант ? ;-) не прокатит ? ;-)


SELECT *
FROM RootHeb
WHERE CHARINDEX('[',Root,1) <> 0
29 июл 11, 13:40    [11044943]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить