回答編集履歴
2
追記
answer
CHANGED
@@ -21,6 +21,11 @@
|
|
21
21
|
下記のようにするとカラム1がNULLの場合に「hoge」という文字が返却されるようになります。
|
22
22
|
`COALESCE(カラム1, 'hoge')`
|
23
23
|
|
24
|
+
似たような機能として、
|
25
|
+
**IFNULL関数**というものがMySQLには存在しますが、
|
26
|
+
**ベンダ独自実装で他のDBMSには存在しない**ため、
|
27
|
+
COALESCEの利用をお勧めします。
|
28
|
+
|
24
29
|
次に2.についてですが、
|
25
30
|
COALESCE関数では一般的には**出力する型を統一しなければならない**というルールがあるので、
|
26
31
|
そのルールに則ってやる必要があります。
|
1
項番のレイアウト変更
answer
CHANGED
@@ -8,20 +8,20 @@
|
|
8
8
|
以下の2点の工夫が必要です。
|
9
9
|
(MySQLだったら2点目は考慮せずに動くかもしれませんが・・・)
|
10
10
|
|
11
|
-
|
11
|
+
1.NULLの場合には代替値を返却できる関数を利用する
|
12
|
-
|
12
|
+
2.DATE型自体には**空白文字はない**ので型を文字列型に統一する意味でキャストを行う
|
13
13
|
|
14
14
|
今回のようなカラムごとに固有の処理を行う場合は、
|
15
15
|
`SELECT * FROM テーブル名`のような記載はできません。
|
16
16
|
前提としてカラム名を直接指定するSELECT文に置き換えましょう。
|
17
17
|
|
18
|
-
では先ず
|
18
|
+
では先ず1.ですが、
|
19
19
|
MySQLにも標準SQL関数の1つである、**COALESCE関数**が実装されています。
|
20
20
|
この関数は**最初にNULLとならない値を返すという機能**なので、
|
21
21
|
下記のようにするとカラム1がNULLの場合に「hoge」という文字が返却されるようになります。
|
22
22
|
`COALESCE(カラム1, 'hoge')`
|
23
23
|
|
24
|
-
次に
|
24
|
+
次に2.についてですが、
|
25
25
|
COALESCE関数では一般的には**出力する型を統一しなければならない**というルールがあるので、
|
26
26
|
そのルールに則ってやる必要があります。
|
27
27
|
つまる所、日付型を文字列型にキャストしましょうというお話です。
|