
例えば以下のテーブルがあったとします。※年月日はDATE
従業員(ID,名前,勤務開始年月日,退職年月日)
退職していない従業員の退職年月日はnullが初期値として保持されます。このとき、例えば2009/2/10以前に退職した従業員情報をselectしたい場合
select * from 従業員 where 退職年月日 < 20090210
と実行した場合、null値は無視されて正常終了となりますか?
select * from 従業員 where 退職年月日 < 20090210 AND 退職年月日 IS NOT NULL
とする必要はありますか?
実行環境がないので教えてください。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
NULLは値ではありません。
退職年月日 < 20090210 の条件式は退職年月日がNULLの時に'unknown'を返します。
ですから
AND 退職年月日 IS NOT NULL
の指定は必要ありません。
なお退職年月日がDATE型ならば適切な処理で"20080210"を時刻型にする必要があります。
これはRDBMSにより仕様が違いますので割愛させていただきます。
No.3
- 回答日時:
#2回答者です。
追記します。null値が検索対象になるかどうかは、#2での回答の通りです。
>select * from 従業員 where 退職年月日 < 20090210
date型に対する定数の指定は、お使いのRDBMSで正しいですか?
'yyyy-mm-dd'などの文字定数を、date型にキャストして変換してくれるRDBMSは多いと思いますが、数値での指定というのはあまり見たことがないので。
No.2
- 回答日時:
null値は、等号や大小では比較ができない「不定な値」です。
>select * from 従業員 where 退職年月日 < 20090210
>と実行した場合、null値は無視されて正常終了となりますか?
標準SQLや主要なRDBMSでは、null値は検索対象となりません。
なお、Oracleでは「長さが0の文字列は、nullと等価」など、一部のRDBMSでは独自仕様を持っている可能性があるので、その点には注意してください。
No.1
- 回答日時:
DBの種類やバージョンによって異なる可能性もありますが、
PostgreSQL8なら経験があるので、その条件で書きますね。
>select * from 従業員 where 退職年月日 < 20090210
select * from 従業員 where 退職年月日 < DATE '20090210'
これなら大丈夫だと思います。
ただし、これだとNULLもヒットすると思うので、
select * from 従業員
where 退職年月日 < DATE '20090210' AND 退職年月日 IS NOT NULL
にした方が良さそうです。
以上、ご参考になりましたら幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
DATE型にNULLをセットするには?
Oracle
-
単一グループのグループ関数ではありません。
Oracle
-
-
4
timestamp が空のデータを除いて、データを選択したい
PostgreSQL
-
5
ORA-01858: 数値を指定する箇所に数値以外の文字が指定されています
Java
-
6
DATE型変数を初期化する方法
Visual Basic(VBA)
-
7
既にテーブルが存在する場合のインポート
Oracle
-
8
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
9
DELETE文でFROM句を省略した場合
その他(データベース)
-
10
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
11
SQL*Loaderで、データを加工してロードしたいです。
Oracle
-
12
データを削除しても表領域の使用率が減りません
Oracle
-
13
datetime型でNULL値を入れたい。
SQL Server
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
退職代行を使われた会社の人に...
-
辞めるって言ったけど本当は悔しい
-
同性の店員と友達になりたくて...
-
中退共退職金について 掛金10,0...
-
福利厚生の良し悪しが分かりま...
-
勤務先の社長に 退職の意思の連...
-
DATE型とnullの比較
-
香害や受動喫煙症で退職した場...
-
女性に質問です。職場に気にな...
-
退職金
-
退職所得申告書に記載のある...
-
退職の意向を示したのですがあ...
-
自衛隊10年目のものです。 陸曹...
-
引き継ぎや周りに教えるのが嫌...
-
<ビジネスマナー>退職した人...
-
本当にかわいい…
-
休職→退職にしてしまう人が、居...
-
途中退職者の社会保険料について
-
総務がわからないというので教...
-
仕事中に歯医者に行くのって、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
退職の意向を示したのですがあ...
-
退職代行を行う若者が増えてい...
-
福利厚生の良し悪しが分かりま...
-
引き継ぎや周りに教えるのが嫌...
-
存在感を増す新規サービスに「...
-
自衛隊10年目のものです。 陸曹...
-
中退共退職金について 掛金10,0...
-
中小企業で4年数ヶ月勤めたとし...
-
同性の店員と友達になりたくて...
-
女性に質問です。職場に気にな...
-
退職代行サービスが行っている...
-
退職金
-
勤務先の社長に 退職の意思の連...
-
変ですか??
-
DATE型とnullの比較
-
香害や受動喫煙症で退職した場...
-
男性は、頼りにしています、っ...
-
いわゆるパワハラっていうのは...
-
叙勲受領資格について危険従事...
-
アクセスで特定のレコードを非...
おすすめ情報