我想在另一个select语句的投影中使用表别名,如下所示:
SELECT [ID]
,[Name]
,CASE WHEN 'reptile' IN
(SELECT [Type] FROM dbo.Pets [S] INNER JOIN [P] ON S.People_ID = P.ID)
THEN 1 ELSE 0 END [HasReptile]
FROM People [P]
在投影中有一个select语句,它试图使用表别名[P]。显然这不合法。如何在不使用两个单独查询的情况下实现目标?
实际上,我的查询是对任何拥有“爬行动物”类型的宠物的人说“显示'1”。
我正在使用SQL Server 2008。
答案 0 :(得分:1)
SELECT [ID]
,[Name]
,CASE WHEN 'reptile' IN
(SELECT [Type] FROM dbo.Pets [S] WHERE S.People_ID = P.ID)
THEN 1 ELSE 0 END [HasReptile]
FROM People [P]