我有一个表(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 *语句。
答案 0 :(得分:1)
你应该使用in
select * from dbo.NerdsTable
where school in (select school from dbo.NerdsTable);
因为subselect的学校不止一个