Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5(EOL), 10.6
-
None
-
None
Description
DROP TABLE IF EXISTS t1;
|
CREATE TABLE t1 (a YEAR(2));
|
INSERT INTO t1 VALUES (0);
|
SELECT a,NULLIF(a,2000),CASE a WHEN 2000 THEN NULL ELSE 2000 END FROM t1;
|
returns
+------+----------------+------------------------------------------+
|
| a | NULLIF(a,2000) | CASE a WHEN 2000 THEN NULL ELSE 2000 END |
|
+------+----------------+------------------------------------------+
|
| 00 | NULL | 2000 |
|
+------+----------------+------------------------------------------+
|
The result for CASE looks wrong. It should return NULL, similar to what NULLIF does.
Note, if I slightly rewrite CASE, it works fine:
mysql> SELECT CASE WHEN a=2000 THEN NULL ELSE 2000 END FROM t1;
|
+------------------------------------------+
|
| CASE WHEN a=2000 THEN NULL ELSE 2000 END |
|
+------------------------------------------+
|
| NULL |
|
+------------------------------------------+
|