
例えば以下のテーブルがあったとします。※年月日は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で質問しましょう!
似たような質問が見つかりました
- 転職 求職中の者です<m(__)m>皆さんだったらどの会社に行きますか? 2 2023/05/26 12:53
- その他(ビジネス・キャリア) どちらの会社に就職するか悩んでいます 4 2022/06/03 07:50
- 就職・退職 退職と有休消化について 一般的には有休消化して退職でいいですよね? 法令では2週間前、就業規則は1ヶ 4 2023/03/01 22:49
- 面接・履歴書・職務経歴書 以前退職した会社に再就職したいですが 以前入社の際に履歴書の職歴欄は短期アルバイト、期間従業員など全 1 2022/06/03 14:54
- 雇用保険 従業員の氏名変更について 2 2022/08/31 15:41
- 住民税 住民税について教えて下さい。 3月末からずっと連絡が取れなくなっていた従業員がおり、昨日やっと連絡が 2 2022/05/20 08:49
- 年末調整 年末調整 1年のうちに同じ会社に退職・再就職 3 2023/04/08 08:30
- 年末調整 年末調整の有無?? 4 2022/11/22 09:42
- 雇用保険 離職票が不要の場合会社側手続き 3 2022/08/11 10:11
- 雇用保険 失業保険についての質問をさせていただきます。 前職を2ヶ月半で退職。 その前は2年半ほど勤めてました 1 2022/05/15 23:33
このQ&Aを見た人はこんなQ&Aも見ています
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
DATE型にNULLをセットするには?
Oracle
-
timestamp が空のデータを除いて、データを選択したい
PostgreSQL
-
-
4
datetime型でNULL値を入れたい。
SQL Server
-
5
単一グループのグループ関数ではありません。
Oracle
-
6
ORA-01858: 数値を指定する箇所に数値以外の文字が指定されています
Java
-
7
【DB】同じトランザクション内でupdateとselectをしたときの結果値
その他(データベース)
-
8
既にテーブルが存在する場合のインポート
Oracle
-
9
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
10
CASE文のエラーについて
Oracle
-
11
Excel内での検索結果をシートに出力したい
Excel(エクセル)
-
12
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
13
SQL*Loaderで、データを加工してロードしたいです。
Oracle
-
14
データベース関係で、データの洗い替えとはどのような事を行うことでしょう
IT・エンジニアリング
-
15
oracleのimp-00002エラーについて
Oracle
-
16
アクセスできない保護レベルエラーが発生します
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中退共退職金について 掛金10,0...
-
引き継ぎや周りに教えるのが嫌...
-
女性に質問です。職場に気にな...
-
香害や受動喫煙症で退職した場...
-
勤務先の社長に 退職の意思の連...
-
退職所得申告書に記載のある...
-
叙勲受領資格について危険従事...
-
本当にかわいい…
-
数年前に大学病院で手術をして...
-
公務員の退職日について
-
エクセルで今日現在から退職ま...
-
同性の店員と友達になりたくて...
-
DATE型とnullの比較
-
退職金
-
福利厚生の良し悪しが分かりま...
-
退職代行を行う若者が増えてい...
-
小学校教諭の異動が載りますが...
-
退職代行サービスが行っている...
-
退職の意向を示したのですがあ...
-
アルバイトに初出勤しましたが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変ですか??
-
香害や受動喫煙症で退職した場...
-
勤務先の社長に 退職の意思の連...
-
同性の店員と友達になりたくて...
-
女性に質問です。職場に気にな...
-
退職金
-
退職代行サービスが行っている...
-
DATE型とnullの比較
-
教師は、停職処分とかで依頼退...
-
男性は、頼りにしています、っ...
-
叙勲受領資格について危険従事...
-
小学校教諭の異動が載りますが...
-
<ビジネスマナー>退職した人...
-
エクセルで今日現在から退職ま...
-
退職所得申告書に記載のある...
-
いわゆるパワハラっていうのは...
-
退職する際のお礼の品
-
退職を惜しまれる人そうでない...
-
アクセスで特定のレコードを非...
-
英語で退職祝いを表現すると、
おすすめ情報