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

Откуда: Київ
Сообщений: 10428
суть такова:

в процедуре динамически формирую запрос, параметром процедуры является строка.

Надо:

если строка содержит символы, которые используются для LIKE, тогдf сформировать
запроc Like, иначе FREETEXT.

Вопрос в том, как по переданной строке определить есть там символы или нет.
8 сен 09, 11:45    [7630554]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Glory
Member

Откуда:
Сообщений: 104760
Winnipuh

Вопрос в том, как по переданной строке определить есть там символы или нет.

Использовать LIKE или CHARINDEX или PATINDEX
8 сен 09, 11:46    [7630573]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh

Вопрос в том, как по переданной строке определить есть там символы или нет.

Использовать LIKE или CHARINDEX или PATINDEX


понимаю, но что именно искать?
я делаю так:

CREATE FUNCTION dbo.IsStringLike
(
	@string NVARCHAR(MAX)
)
RETURNS bit
AS
BEGIN
	DECLARE @result bit
	SET @result = 0
	IF(	CHARINDEX(N'%', @string)>0 or CHARINDEX(N'*', @string)>0
	or (CHARINDEX(N'[', @string)>0 and CHARINDEX(N']', @string)>0 
	and CHARINDEX(N'[', @string)+1< CHARINDEX(N']', @string))
	or CHARINDEX(N'_', @string)>0) SET @result = 1;
	
	RETURN @result
END
GO

что еще добавить? изменить?
8 сен 09, 11:56    [7630647]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Winnipuh
параметром процедуры является строка.
Добавьте еще один параметр (флаг) - предназначена ли она для LIKE
И никакие символы искать не надо
8 сен 09, 11:58    [7630659]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Glory
Member

Откуда:
Сообщений: 104760
Winnipuh
Glory
Winnipuh

Вопрос в том, как по переданной строке определить есть там символы или нет.

Использовать LIKE или CHARINDEX или PATINDEX


понимаю, но что именно искать?

Символ * не является wildchar-ом
8 сен 09, 11:59    [7630670]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh
Glory
Winnipuh

Вопрос в том, как по переданной строке определить есть там символы или нет.

Использовать LIKE или CHARINDEX или PATINDEX


понимаю, но что именно искать?

Символ * не является wildchar-ом


ок, спасибо.
8 сен 09, 12:04    [7630703]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Паганель
Winnipuh
параметром процедуры является строка.
Добавьте еще один параметр (флаг) - предназначена ли она для LIKE
И никакие символы искать не надо


я же не заставлю юзера ставить птицу.... юзер он наивный
8 сен 09, 12:04    [7630707]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Так это юзер вводит?
есть такое страшное слово sql injection
не боитесь?
8 сен 09, 12:08    [7630726]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Glory
Member

Откуда:
Сообщений: 104760
Winnipuh
Паганель
Winnipuh
параметром процедуры является строка.
Добавьте еще один параметр (флаг) - предназначена ли она для LIKE
И никакие символы искать не надо


я же не заставлю юзера ставить птицу.... юзер он наивный

Ну если наивный, то делайте LIKE. А если запрос не вернул записей, то можете предложить ему сделать FREETEXT
8 сен 09, 12:09    [7630738]     Ответить | Цитировать Сообщить модератору
 Re: посдкажите запрос, который определяет строку с wildchar  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
Winnipuh
Паганель
Winnipuh
параметром процедуры является строка.
Добавьте еще один параметр (флаг) - предназначена ли она для LIKE
И никакие символы искать не надо


я же не заставлю юзера ставить птицу.... юзер он наивный

ИМХО, либо "юзер наивный" и тогда всё, что он ввёл нужно понимать буквально, либо (если уж юзер понимает, что он вводит символы для LIKE) "пусть ставит птицу".
8 сен 09, 12:10    [7630741]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить