![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
現在、仕事で使用する機会がありそうなので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の累計値取得方法に...
-
Accessで期間指定の売上合計と...
-
項目名の制限について
-
改行コードを削除して取得する...
-
フォームで検索 エラーの表示...
-
各店舗毎の最大売上の項目を取...
-
インサート文での条件の指定に...
-
列名無効について
-
Oracleでテーブルの結合について
-
外部結合のSQLの書き方について
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
Accessでコードを入れると名前...
-
Accessでテーブルの値をテキス...
-
「直需」の意味を教えてください
-
3つの表を1つに縦に連結する
-
group by でselect
-
変数が選択リストにありません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLでグループ化した結果の件数...
-
MySQLで改行を含む文の登録のし...
-
フォームで検索 エラーの表示...
-
項目名の制限について
-
ORA-01722: 数値が無効です
-
列名無効について
-
オラクルSQLの累計値取得方法に...
-
Accessで期間指定の売上合計と...
-
SQL文 2つのテーブルから、グ...
-
SQLでNOT INと!=ALLの違い
-
改行コードを削除して取得する...
-
縦表示データを列として取得す...
-
SQLServerにおける累積、累計取...
-
SQL抽出方法:売上Tを集計した...
-
SQL文のエラーについて
-
SQL文(県名一覧・・)
-
集計のSQLをお教え下さい
-
各店舗毎の最大売上の項目を取...
-
Oracleでテーブルの結合について
-
【 困 】 ストアドプロシージャ
おすすめ情報