sql选择基于多个值

时间:2013-09-23 18:42:41

标签: sql-server

我们正在使用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

3 个答案:

答案 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'
        )