0

我们使用的是 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
4

3 回答 3

2

如果您不想使用嵌套查询,也可以使用以下方法:

SELECT     link
FROM       table
GROUP BY   link
HAVING     SUM(CASE WHEN CODE = 'C' THEN 1 ELSE 0 END) = 0
于 2013-09-23T18:54:16.263 回答
1

Try with the following example:

SELECT DISTINCT link
FROM TABLE
WHERE link NOT IN (
        SELECT link
        FROM TABLE
        WHERE code LIKE 'C'
        )
于 2013-09-23T18:46:17.080 回答
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'
        )
于 2013-09-23T18:45:04.930 回答