SQL使用一个表中的位置选择多个行

时间:2011-12-23 03:01:18

标签: sql

我有一张名为“学生”的桌子。

 Student
    id | name | age
    1  | john | 10
    2  | jack | 10
    3  | jerry| 10

我想选择1行和2行。我写了Select * from Student where name=john and name=jack 但返回“空集”。 我该怎么做。帮助我。

4 个答案:

答案 0 :(得分:18)

select *
from student
where name in ('john', 'jack')

或者

select *
from student
where name = 'john'
or name = 'jack'

答案 1 :(得分:3)

您需要OR而不是AND

无论你写什么条件,它都会针对每条记录检查它们。由于没有单个记录同时包含name = 'john'name = 'jack',所以它们都会失败。


相反,如果您使用OR ...
- 第一条记录产生TRUE OR FALSE,这是真的 - 第二条记录产生FALSE OR TRUE,这是正确的 - 第3条记录产生FALSE OR FALSE,这是假的。


Select * from Student where name='john' OR name='jack'


或者,用不同的方式说出这一切......

SELECT * FROM Student WHERE name IN ('john', 'jack')

答案 2 :(得分:0)

使用单引号括起您的值,加上使用而不是或:

where name='john' or name = 'jack'

答案 3 :(得分:-1)

尝试这个。

  declare @names varchar(100)
  set @names='john,jack'
  Select * from Student 
 where charIndex(',' + rtrim(cast(name as nvarchar(max))) + ',',',' +isnull(@names,name) +',') >0