奇怪的行为:SQL和具有多个IN运算符的运算符

时间:2009-09-14 08:00:04

标签: sql sql-server

我在我的sql查询where子句中使用带有AND的多个IN运算符,如下所示......

---
where ID in (1, 3, 234, 2332, 2123, 989) AND tag in ('wow', 'wonderful')

但令人惊讶的是,结果的行为似乎是OR类型而不是AND类型。我的意思是它忽略了AND运算符......

你能解释一下为什么吗?

1 个答案:

答案 0 :(得分:1)

我无法使用SQL Server 2008重现结果。

SELECT * FROM 
(
  SELECT 0 AS ID, 'wow' as Tag
) X
WHERE ID in (1, 3, 234, 2332, 2123, 989) AND tag in ('wow', 'wonderful')

结果: 没有记录

SELECT * FROM 
(
  SELECT 1 AS ID, 'wow' as Tag
) X
WHERE ID in (1, 3, 234, 2332, 2123, 989) AND tag in ('wow', 'wonderful')

结果:

ID    Tag
1  wow

再次检查您的代码。