T-SQL仅在不存在的情况下选择行

问题描述 投票:0回答:1

我有一个带有两个ID的表。ResourceId和LanguageId

我需要加入这两个选择,仅当ResourceId不在列表中时才添加第二个结果。

SELECT * FROM Resources WHERE Language = 1
SELECT * FROM Resources WHERE Language = 0

JOIN 
    /*where ResourceId not present already*/

到目前为止,除了复杂的分区,我什么都没想到。有一些简短而性感的解决方案吗?并非所有ResourceId都有Language 0条目并非所有ResourceId都有语言1条目一些ResourceId都具有

提前感谢

sql sql-server tsql
1个回答
0
投票

您可以使用具有存在逻辑的联合:

SELECT * FROM Resources WHERE Language = 1
UNION ALL
SELECT *
FROM Resources
WHERE Language = 0 AND NOT EXISTS (SELECT 1 FROM Resources WHERE Language = 1);
© www.soinside.com 2019 - 2024. All rights reserved.