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

次の例を試してください。

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 に答える