例えば以下のテーブルがあったとします。※年月日は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
-
datetime型でNULL値を入れたい。
SQL Server
-
-
4
GROUP BYを行った後に結合したい。
Oracle
-
5
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
6
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
7
Oracle 2つのDate型の値の差を「分」で取得したい
その他(データベース)
-
8
PL/SQLでログを確認したい。
Oracle
-
9
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
10
エラーを起こす方法
Oracle
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
12
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
13
Date型にNULLをセットしたい VB2008+SQLServer2008
SQL Server
-
14
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
15
ストアドプロシージャ_カーソルのヒット件数
その他(データベース)
-
16
Oracleでの文字列連結サイズの上限
Oracle
-
17
テーブルタグの中にdivを含めてはダメ?
HTML・CSS
-
18
プルダウン選択を変更すると、変更する前に戻るJavaScript
JavaScript
-
19
含まない言い方ってどうしたらいいんでしょうか
日本語
-
20
仕様書の表記について
IT・エンジニアリング
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DATE型とnullの比較
-
エクセルで今日現在から退職ま...
-
人を利用する人の末路はどんな...
-
男性は、頼りにしています、っ...
-
教師は、停職処分とかで依頼退...
-
叙勲受領資格について危険従事...
-
小学校教諭の異動が載りますが...
-
<ビジネスマナー>退職した人...
-
公務員の退職日について
-
変ですか??
-
実家暮らしで退職したことを親...
-
こんにちは。ガンプラ大好き51...
-
地方公務員(正規)→地方公務員...
-
退職する際のお礼の品
-
国家公務員の退職の種類
-
同性の店員と友達になりたくて...
-
タロットで二者択一法で自分の...
-
学生時代アダルトビデオに出て...
-
退職所得申告書に記載のある...
-
職場でダブル不倫をした結果、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変ですか??
-
教師は、停職処分とかで依頼退...
-
退職を惜しまれる人そうでない...
-
男性は、頼りにしています、っ...
-
人を利用する人の末路はどんな...
-
DATE型とnullの比較
-
エクセルで今日現在から退職ま...
-
退職所得申告書に記載のある...
-
これってもう嫌われましたか?...
-
同性の店員と友達になりたくて...
-
退職する際のお礼の品
-
公務員の退職日について
-
アクセスで特定のレコードを非...
-
叙勲受領資格について危険従事...
-
小学校教諭の異動が載りますが...
-
退職祝いの金額&内容
-
<ビジネスマナー>退職した人...
-
退職後 嘱託 お祝い 欠席 贈り物
-
退職日を1ヶ月ごまかしてしまい...
-
実家暮らしで退職したことを親...
おすすめ情報