同じ識別子が関連付けられているNULL値を有する場合)複数の値を排除するSQL -
-
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
所属していません StackOverflow