
現在、仕事で使用する機会がありそうなのでOracleでSQLを勉強しています。
ある教本の練習問題をしていて気になったので質問させてください。
単純な受注に関するデータベースの問題です。
CUSTOMER_TとSLIP_Tというテーブルがあり、
CUSTOMER_Tは顧客コード、顧客の名前、顧客の住所が載っています。
SLIP_Tは受注番号、発注した顧客の顧客コード、受注した日が載っています。
2007年1月10日以降に受注したことのない顧客の名前を出力する問題なのですが私は以下のように解答しました。
SELECT CUST_NAME
FROM CUSTOMER_T
WHERE CUST_CODE != ALL(SELECT CUST_CODE
FROM SLIP_T
WHERE SLIP_DATE >= '2007-1-10');
しかし解答は以下でした。
SELECT CUST_NAME
FROM CUSTOMER_T
WHERE CUST_CODE NOT IN(SELECT CUST_CODE
FROM SLIP_T
WHERE SLIP_DATE >= '2007-1-10');
自分で簡単なデータベースを作り試してみたのですが出力結果は同じになりました。
この二つのSQL文の違いにどのような問題があるのでしょうか?よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
マニュアル参照。
http://otndnld.oracle.co.jp/document/products/or …
> IN
>メンバーとの等価性をテストします。=ANYと同じです。
> NOT IN
>!=ALLと同じです。メンバーのいずれかがNULLの場合には、FALSEと評価されます。
なので「NOT IN」と「!=ALL」は同じです。
同じなら他の人にもわかりやすい「NOT IN」を使うほうがよいと思います。ALLを使ったSQLは、あまり見たことがありません。
それよりは「not in」と「not exists」の違いを把握しておいた方がよいです。
http://oshiete1.goo.ne.jp/qa5419099.html
http://otndnld.oracle.co.jp/document/products/or …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessについて 2 2022/05/31 16:58
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- Excel(エクセル) 関数の式を教えてください 2 2022/04/04 11:15
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- コンサルティング・アドバイザー 事業戦略策定のときの現状分析(3C)の手順について 1 2022/07/24 14:36
- Excel(エクセル) エクセル 多数のファイルから値を抜き出したい 4 2022/12/12 16:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLで改行を含む文の登録のし...
-
SQLでNOT INと!=ALLの違い
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
Accessでテーブル名やクエリ名...
-
Access テキスト型に対する指定...
-
変数が選択リストにありません
-
テーブルの存在チェックについて
-
ACCESSで400以上のフィールドが...
-
Vbaでアクセスからエクセルにリ...
-
ORACLEでLONG項目からCHAR項目...
-
アクセス エラーを数値「0」に...
-
列が存在しないと言われる
-
エクセルグラフの凡例スペース
-
accessのレポートで元になるテ...
-
Oracleのビュー作成時に「指定...
-
Access2021 「ISNULL関数には引...
-
データがある場合のカラムの削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLでグループ化した結果の件数...
-
MySQLで改行を含む文の登録のし...
-
項目名の制限について
-
フォームで検索 エラーの表示...
-
改行コードを削除して取得する...
-
Accessで期間指定の売上合計と...
-
LEFT JOINとRIGHT JOINについて
-
アクセスのクエリについて(前...
-
SQLを教えて下さい
-
【 困 】 ストアドプロシージャ
-
オラクルSQLの累計値取得方法に...
-
他のテーブルの抽出条件で更新...
-
SQL文のエラーについて
-
ORA-01722: 数値が無効です
-
集合関数(MIN)で取得した値を...
-
SQL抽出方法に悩んでいます④
-
列名無効について
-
内部結合のSQL文
-
“SQL文を作るSQL”の書き方って...
-
特殊なレコードの取得方法
おすすめ情報