获取不同结果的记录

时间:2016-10-11 13:25:00

标签: sql sql-server

我有一个表(NerdsTable)如下:

--------------+---------------------+--------------
    name             school              id
--------------+---------------------+--------------
    Mike             China              5000
    Joe              Serbia             100
    Ana              Serbia             100
    Rats             Khaleesi Land      100
--------------+---------------------+--------------

当我发出这样的查询时:

select distinct school from dbo.NerdsTable;

我得到了结果:

[china, serbia, Khaleesi Land]

当我发出这样的查询时:

select * from dbo.NerdsTable where school = 'china'

我得到的结果如下:

[Mike, China, 5000]

我想要做的是获得一份独特的学校清单,并为每所学校展示学生:因此,我试图将这两个问题组合成这样的东西:

select * from dbo.NerdsTable where school = (select distinct school from dbo.NerdsTable);

但是,我收到错误声明:

Subquery returned more than 1 value.

错误是有道理的,但我不确定如何指示sql server查询循环遍历所有不同的结果并执行select *语句。

1 个答案:

答案 0 :(得分:1)

你应该使用in

select * from dbo.NerdsTable 
where school in (select  school from dbo.NerdsTable);

因为subselect的学校不止一个