Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 基于多个值的sql选择_Sql Server - Fatal编程技术网

Sql server 基于多个值的sql选择

Sql server 基于多个值的sql选择,sql-server,Sql Server,我们使用的是SQL Server 2008,下表的一个示例。我需要查询下表,只给我的链接结果,如果没有'C'的代码存在,但因为链接957下面已经有一个C代码,我不希望957返回在所有,我只希望950和955 link code --------------------------------- 957 A 957 B 957

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

您可以在此上使用
notexists()

SELECT  a.*
FROM    tableName a
WHERE   NOT EXISTS
        (
            SELECT  1
            FROM    tableName b
            WHERE   a.link = b.link AND
                    b.code = 'c'
        )
但是如果您只想单独获得
链接

SELECT  DISTINCT a.link
FROM    tableName a
WHERE   NOT EXISTS
        (
            SELECT  1
            FROM    tableName b
            WHERE   a.link = b.link AND
                    b.code = 'c'
        )

您可以使用
不存在()

SELECT  a.*
FROM    tableName a
WHERE   NOT EXISTS
        (
            SELECT  1
            FROM    tableName b
            WHERE   a.link = b.link AND
                    b.code = 'c'
        )
但是如果您只想单独获得
链接

SELECT  DISTINCT a.link
FROM    tableName a
WHERE   NOT EXISTS
        (
            SELECT  1
            FROM    tableName b
            WHERE   a.link = b.link AND
                    b.code = 'c'
        )

尝试以下示例:

SELECT DISTINCT link
FROM TABLE
WHERE link NOT IN (
        SELECT link
        FROM TABLE
        WHERE code LIKE 'C'
        )

请尝试以下示例:

SELECT DISTINCT link
FROM TABLE
WHERE link NOT IN (
        SELECT link
        FROM TABLE
        WHERE code LIKE 'C'
        )

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

SELECT     link
FROM       table
GROUP BY   link
HAVING     SUM(CASE WHEN CODE = 'C' THEN 1 ELSE 0 END) = 0

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

SELECT     link
FROM       table
GROUP BY   link
HAVING     SUM(CASE WHEN CODE = 'C' THEN 1 ELSE 0 END) = 0

SUM(CASE WHEN CODE='C',然后1 ELSE 0 END)=0因为他不想要'C'Awesome,谢谢Willwpan,这样做了。我很好奇哪个查询更快。我的意思是我的和这个。你能用大量数据测试它,并在结果时间上加上注释吗?SUM(CASE WHEN CODE='C',然后1 ELSE 0 END)=0因为他不想要'C'Awesome,谢谢Willwpan,就是这样。我很好奇哪一个查询更快。我的意思是我的和这个。你能用大量的数据来测试它,并在结果上加上注释吗?