2012-04-23 8 views
0

テーブルがあり、nullの特定の列をチェックするか値が必要です。
列名がorder_priceであるとします。
レコードが存在し、列のヌルであるかどうかを確認するクエリ

私はちょうどwhere order_price is nullをチェックすれば、これもテーブルにないレコードを含んでいます。
たとえば、のorder_priceがnullで、注文表に存在しないorder_id = 2があります。したがって、where_priceがnullかどうかを調べるwhere条件の代わりに、列がnullかレコードが存在しないかどうかを知りたいです。

私はこのテーブルで外部結合を行っているので、別のテーブルの主キーをマップできません。私はOracleを使用しています。代わりに、参加の

おかげ

+1

私たちにあなたの質問を表示してください。 –

答えて

3
SELECT o.*, 
     od.order_price, 
     CASE 
     WHEN od.order_id IS NULL THEN 
       'Not exists' 
     WHEN od.order_price IS NULL THEN 
       'Exists, IS NULL' 
     ELSE 
       'Exists, IS NOT NULL' 
     END AS nullness 
FROM orders o 
LEFT JOIN 
     order_data od 
ON  od.order_id = o.id 
2

は、あなたが "EXISTS/NOT EXISTS" のキーワードとサブクエリを使用することができます。

SELECT parent.* 
FROM parent 
WHERE EXISTS (SELECT 1 
       FROM child 
       WHERE child.id_parent = parent.id AND child.somecolumn IS NULL) 

述語を一致させたいかどうかに応じて、「存在する/存在しません」と再生できます。

関連する問題