例えば以下のテーブルがあったとします。※年月日は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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
datetime型でNULL値を入れたい。
SQL Server
-
GROUP BYを行った後に結合したい。
Oracle
-
-
4
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
5
DATE型にNULLをセットするには?
Oracle
-
6
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
7
GREATESTで NULLをスルーする方法は?
MySQL
-
8
Oracle 2つのDate型の値の差を「分」で取得したい
その他(データベース)
-
9
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
10
[ BETWEEN ] vs [ >= AND <= ]
MySQL
-
11
Date型にNULLをセットしたい VB2008+SQLServer2008
SQL Server
-
12
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
13
含まない言い方ってどうしたらいいんでしょうか
日本語
-
14
PL/SQLでログを確認したい。
Oracle
-
15
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
16
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
17
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
18
データベースのINT型項目にNULLはNG?
MySQL
-
19
複数列の最大値を求めたい
SQL Server
-
20
会社の共有フォルダのIPアドレスを表示する方法
Windows 7
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変ですか??
-
男性は、頼りにしています、っ...
-
DATE型とnullの比較
-
退職を惜しまれる人そうでない...
-
夫婦経営のクリニックに、勤め...
-
退職する際のお礼の品
-
公務員の退職日について
-
人を利用する人の末路はどんな...
-
職場の同期(短期の仕事ですが...
-
エクセルで今日現在から退職ま...
-
アクセスで特定のレコードを非...
-
退職届けは出すべきか?迷って...
-
小学校教諭の異動が載りますが...
-
国家公務員 早期退職 退職金
-
職場でダブル不倫をした結果、...
-
詫び状を送ります。おかしな部...
-
教員の処分について質問があり...
-
英語の告知文章訳
-
今日、退職する旨を伝えなけれ...
-
退職日を1ヶ月ごまかしてしまい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
男性は、頼りにしています、っ...
-
変ですか??
-
教師は、停職処分とかで依頼退...
-
DATE型とnullの比較
-
人を利用する人の末路はどんな...
-
叙勲受領資格について危険従事...
-
エクセルで今日現在から退職ま...
-
同性の店員と友達になりたくて...
-
アクセスで特定のレコードを非...
-
退職所得申告書に記載のある...
-
公務員の退職日について
-
<ビジネスマナー>退職した人...
-
退職日を1ヶ月ごまかしてしまい...
-
退職を惜しまれる人そうでない...
-
実家暮らしで退職したことを親...
-
退職金引当金戻入益について
-
女性に質問です。職場に気にな...
-
アルバイトに初出勤しましたが...
-
こんにちは。ガンプラ大好き51...
-
小学校教諭の異動が載りますが...
おすすめ情報