Можно ли использовать лайк с ключевым словом ALL? - PullRequest
3 голосов
/ 10 июня 2011

Допустим, у меня есть следующее,

declare @A table (a int)

insert into @A
select 1 union all
select 2 union all
select 3

select a FROM @A 
where a > ALL (select 1 union all select 2)

Это будет работать.Но мне нужно использовать «Мне нравится», а не больше, чем здесь,

declare @A table (a int)

insert into @A
select 1 union all
select 2 union all
select 3

select a FROM @A 
where a LIKE ALL (select 1 union all select 2)

Пожалуйста, помогите мне.

Редактировать : Вот мой оригинальный старый стол выглядит,

declare @A table (a varchar(500))

insert into @A
select 'a;b;c' union all
select 'a;d;b' union all
select 'c;a;e'

Мое приложение отправляет значения в моем SP как 'a; b' или 'b; c; a' и т. Д.,

Теперь мне нужно выбрать только те строки в таблице @Aкоторые имеют а и б или б и с и а.Я использую функцию разделения в моем SP, чтобы сделать пользовательский ввод в виде таблицы.Вот почему мне нужно использовать Like ALL здесь.Но любое другое предложение также приветствуется.

Ответы [ 3 ]

2 голосов
/ 11 июня 2011

Невозможно использовать все с подобным.Если я вас правильно понимаю, вы могли бы использовать вместо этого , например .

declare @T table (ID int primary key, Col varchar(25))

insert into @T
select 1, 'a;b;c' union all
select 2, 'a;b;c' union all
select 3, 'a;d;b' union all
select 4, 'bb;a;e'

declare @Input table(val varchar(10))
insert into @Input values('a')
insert into @Input values('b')

select T.ID
from @T as T
  inner join @Input as I
    on ';'+T.Col+';' like '%;'+I.val+';%'
group by T.ID    
having count(t.ID) = (select count(*) from @Input)

Результат

ID
1
2
3
0 голосов
/ 10 июня 2011

Попробуйте создать новую таблицу с поисковыми значениями, а затем объединить ее с помощью оператора LIKE.

create table searchvalues

(

myvalues varchar(30)

)

INSERT INTO SearchValues    
SELECT '%1%'   
UNION SELECT '%2%'


SELECT * FROM @A    
join searchvalues on a like myvalues
0 голосов
/ 10 июня 2011

Вы хотели IN?

 SELECT a FROM @A WHERE a IN (1,2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...