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

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

*
**
...
***********************************

т.е. для меня это одно и тоже, как проверить?
14 сен 09, 15:29    [7656104]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
like ? pathindex ?
-------------------------------------
Jedem Das Seine
14 сен 09, 15:31    [7656117]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Maxx
like ? pathindex ?
-------------------------------------
Jedem Das Seine


имеется в виду проверить на любое к-во вхождений, т.е. юзер может ввести сколько угодно *,для меня в процедуре - это одно и то же, * или 1000 *, мне в процедуре надо проверить... как?
14 сен 09, 15:58    [7656341]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
like ('%*%') ???
14 сен 09, 16:00    [7656354]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
что проверить количество звездочек ? или просто их наличие ?
-------------------------------------
Jedem Das Seine
14 сен 09, 16:01    [7656359]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Чем не устраивает
declare @v varchar(20)
set @v = 'hello**world'

select case when @v like '%*%' then 'true'
            else 'false'
        end as result

result
------
true

(1 row(s) affected)
я что-то никак понять не могу...
14 сен 09, 16:01    [7656360]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Maxx
что проверить количество звездочек ? или просто их наличие ?
-------------------------------------
Jedem Das Seine



проверить надо содержит ли строка только звездочки, неважно сколько
14 сен 09, 17:09    [7656870]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Winnipuh
Maxx
что проверить количество звездочек ? или просто их наличие ?
-------------------------------------
Jedem Das Seine



проверить надо содержит ли строка только звездочки, неважно сколько

Ну так проверьте, если там НЕ "звездочки"
14 сен 09, 17:11    [7656880]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Winnipuh
проверить надо содержит ли строка только звездочки, неважно сколько
declare @v varchar(20)
set @v = '**'
--set @v = 'hello**world'

select case when @v not like '%[^*]%' then 'true'
            else 'false'
        end as result

result
------
true

(1 row(s) affected)
14 сен 09, 17:12    [7656887]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
iljy
Member

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

not like '%[^*]%'

?
14 сен 09, 17:12    [7656889]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31168
Winnipuh
проверить надо содержит ли строка только звездочки, неважно сколько
Из скрипта Паганель понятно, как это сделать?

Если непонятно, посмотрите хелп по like, обратите внимание на операцию "^"
14 сен 09, 17:13    [7656892]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
SELECT
	CASE
		WHEN v NOT LIKE '%[^*]%' AND v <> '' THEN 'true'
		ELSE 'false'
	END
     ,v
FROM(SELECT '*' v UNION ALL SELECT '*f' UNION ALL SELECT '' UNION ALL SELECT NULL) v
14 сен 09, 18:13    [7657318]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
Ozzy-Osbourne
Member

Откуда: Balashikha
Сообщений: 139
Можно еще и так:
declare @v varchar(20)
set @v = '**'
--set @v = 'hello**world'
select result=case when datalength(replace(@v,'*',''))=0 then 'true' else 'false' end
14 сен 09, 21:39    [7657989]     Ответить | Цитировать Сообщить модератору
 Re: как проверить строку на вхождение * ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
А если так?
Ozzy-Osbourne
Можно еще и так:
declare @v varchar(20)
set @v = '**'
set @v = ''
--set @v = 'hello**world'
select result=case when datalength(replace(@v,'*',''))=0 then 'true' else 'false' end
15 сен 09, 09:01    [7658680]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить