我们正在使用SQL Server 2008,下表的示例。我需要查询下面的表格,如果没有“C”代码存在,只给我链接结果,但因为下面的链接957已经有了C代码,我根本不想要957返回,我只想要950和955。
link code
---------------------------------
957 A
957 B
957 C
957 D
955 A
955 B
950 D
950 E
答案 0 :(得分:2)
如果您不想使用嵌套查询,以下内容也可以使用:
SELECT link
FROM table
GROUP BY link
HAVING SUM(CASE WHEN CODE = 'C' THEN 1 ELSE 0 END) = 0
答案 1 :(得分:1)
尝试使用以下示例:
SELECT DISTINCT link
FROM TABLE
WHERE link NOT IN (
SELECT link
FROM TABLE
WHERE code LIKE 'C'
)
答案 2 :(得分:0)
您可以使用NOT EXISTS()
,
SELECT a.*
FROM tableName a
WHERE NOT EXISTS
(
SELECT 1
FROM tableName b
WHERE a.link = b.link AND
b.code = 'c'
)
但如果您只想单独使用link
,
SELECT DISTINCT a.link
FROM tableName a
WHERE NOT EXISTS
(
SELECT 1
FROM tableName b
WHERE a.link = b.link AND
b.code = 'c'
)