回答編集履歴

2

コメントに対する回答

2016/03/12 10:43

投稿

Aeona
Aeona

スコア396

test CHANGED
@@ -1,3 +1,13 @@
1
+ PostgreSQLでのみ使用できるらしいです。
2
+
3
+ 因みに、自分の使用しているMySQL5.6では動作しませんでした。
4
+
5
+ ![MySQLスクリーンキャプチャ](a5af0418d30c13bf2df9326fba11ec82.png)
6
+
7
+
8
+
9
+ ---
10
+
1
11
  質問者様からコメントをいただき再度調べてみました。
2
12
 
3
13
  NULLとUNKNOWNは別もの(であるべき)という事の様です。

1

回答追記

2016/03/12 10:43

投稿

Aeona
Aeona

スコア396

test CHANGED
@@ -1,3 +1,53 @@
1
+ 質問者様からコメントをいただき再度調べてみました。
2
+
3
+ NULLとUNKNOWNは別もの(であるべき)という事の様です。
4
+
5
+ 書き直すと下記のようです。(やはり私、独自の記述方式です。)
6
+
7
+ - NULL(KNOWN)
8
+
9
+ - UNKNOWN
10
+
11
+
12
+
13
+ しかし、実装しているRDBシステムによって実際の値は異なるようです。
14
+
15
+ MySQLではNULL <> UNKNOWNが仕様で記載されいるらしいですが、
16
+
17
+ 別のあるRDBではNULL = UNKONWという仕様で設計されているようです。
18
+
19
+
20
+
21
+ どちらにしろ、下記のような処理はしては**いけない**という事です。
22
+
23
+
24
+
25
+ ```sql
26
+
27
+ SELECT
28
+
29
+ CASE [blnValue]
30
+
31
+ WHEN true THEN 'TRUE'
32
+
33
+ WHEN false THEN 'FALSE'
34
+
35
+ WHEN null THEN 'NULL'
36
+
37
+ ELSE 'UNKNOWN'
38
+
39
+ END
40
+
41
+ FROM table_some
42
+
43
+ ```
44
+
45
+
46
+
47
+ ---
48
+
49
+
50
+
1
51
  リンク先を参照しましたが
2
52
 
3
53
  > NULL (UNKNOWN)