sql IN语句总是为true

时间:2012-10-05 07:25:01

标签: sql sql-server

我有以下sql查询

select * from tblArea where AreaDescription in ('Processing1','Geology 66','Site Infrastructure')

目前它显示了('Processing1','Geology 66','Site Infrastructure')中的AreaDescription记录

但我需要将值传递给查询,该查询始终为true并显示所有记录。我知道我可以使用where子句

where 1=1

但在这里我需要使用in语句。它可能吗?

3 个答案:

答案 0 :(得分:16)

我不明白为什么你需要它以及为什么你不想添加where 1=1或省略WHERE,但你可以这样做:

select * from tblArea 
where AreaDescription in 
(AreaDescription,'Processing1','Geology 66','Site Infrastructure')

测试:http://sqlfiddle.com/#!3/6e15d/1/0

答案 1 :(得分:1)

如果您希望查询始终为true

  • 删除where子句
  • 或添加OR 1=1

答案 2 :(得分:0)

select * from tblArea where AreaDescription in (select AreaDescription from tblArea)