SQL Server 如果列B中存在其他值,则过滤列A

wbrvyc0a  于 2022-12-22  发布在  其他
关注(0)|答案(3)|浏览(135)

我有两列
| 商店|代码|
| - ------| - ------|
| Store1.DD|一百零一|
| Store2.DE|一百零三|
| Store2.DD|一百零三|
| Store1.DD|一百零五|
| Store2.DD|一百零七|
我要筛选值为DD且代码为101和103的所有商店
我写了这个查询

Select * from table 
where Store not like '%DD' and Code not in ('101,'103')

但问题是,它现在排除了所有的DD存储。我只想过滤DD时,两个值都存在。我怎么做呢?
预期成果:
| 商店|代码|
| - ------| - ------|
| Store2.DE|一百零三|
| Store1.DD|一百零五|
| Store2.DD|一百零七|

xvw2m8pv

xvw2m8pv1#

SELECT [Store]
      ,[Code]
  FROM [dbo].[Store]
  WHERE not (Store like '%DD' and Code in ('101', '103'))
t5zmwmid

t5zmwmid2#

SELECT * FROM table
WHERE Store NOT LIKE '%DD' OR Code NOT IN ('101', '103')
tzcvj98z

tzcvj98z3#

在您给出的示例中,只需将逻辑从AND更改为OR

SELECT * FROM table  
WHERE Code NOT IN (101,103) OR Store NOT LIKE '%DD'

相关问题