同じ識別子が関連付けられているNULL値を有する場合)複数の値を排除するSQL -

StackOverflow https://stackoverflow.com/questions/3415959

  •  26-09-2019
  •  | 
  •  

質問

[OK]をここに行きます:

私は(重複およびNULLであってもよい)のIDを持つテーブル(重複はないがNULLであることができる)との値を有する

id      value
-----   -----
1       red
1       red
1       (null)
2       blue
2       blue
3       (null)

だから私は返すんどのようにIDと値のすべての値を持っていますが、ヌル値も発見された場合、結果セットに含めないレコードます。

だから、リターンは次のようになります。

id      value
-----   -----
2       blue

ID 1と3は、結果の1つ以上において(ヌル)の値を持つように

役に立ちましたか?

解決

これだ典型的な「選択する場所が存在しない」とは、例えば、答えを書くには多くの方法で型クエリます:

JOINをLEFTを使用して/ ... NULL ISます:

SELECT DISTINCT T1.id, T1.value
FROM your_table T1
LEFT JOIN your_table T2
ON T1.id = T2.id AND T2.value IS NULL
WHERE T2.id IS NULL

NOT IN使用します:

SELECT DISTINCT id, value
FROM your_table
WHERE id NOT IN
(
    SELECT DISTINCT id
    FROM your_table
    WHERE value IS NULL
)

、NOT使用すると、EXISTSます:

SELECT DISTINCT id, value
FROM your_table
WHERE NOT EXISTS
(
    SELECT NULL
    FROM your_table T1
    WHERE your_table.id = T1.id AND T1.value IS NULL
)

他のヒント

select t1.id, t1.value
from MyTable t1
left outer join MyTable t2 on t1.id = t2.id and t2.value is null
where t2.id is null
group by t1.id, t1.value
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top