1SET sql_mode=ORACLE; 2 3--error ER_PARSE_ERROR 4SELECT DECODE(10); 5--error ER_PARSE_ERROR 6SELECT DECODE(10,10); 7 8SELECT DECODE(10,10,'x10'); 9SELECT DECODE(11,10,'x10'); 10 11SELECT DECODE(10,10,'x10','def'); 12SELECT DECODE(11,10,'x10','def'); 13 14SELECT DECODE(10,10,'x10',11,'x11','def'); 15SELECT DECODE(11,10,'x10',11,'x11','def'); 16SELECT DECODE(12,10,'x10',11,'x11','def'); 17 18EXPLAIN EXTENDED SELECT DECODE(12,10,'x10',11,'x11','def'); 19 20CREATE TABLE decode (decode int); 21DROP TABLE decode; 22 23 24--echo # 25--echo # MDEV-13863 sql_mode=ORACLE: DECODE does not treat two NULLs as equivalent 26--echo # 27 28--error ER_PARSE_ERROR 29SELECT DECODE(10); 30--error ER_PARSE_ERROR 31SELECT DECODE(10,10); 32 33--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 34SELECT DECODE_ORACLE(10); 35--error ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 36SELECT DECODE_ORACLE(10,10); 37 38 39EXPLAIN EXTENDED SELECT DECODE(12,10,'x10',11,'x11'); 40EXPLAIN EXTENDED SELECT DECODE(12,10,'x10',11,'x11','def'); 41EXPLAIN EXTENDED SELECT DECODE_ORACLE(12,10,'x10',11,'x11'); 42EXPLAIN EXTENDED SELECT DECODE_ORACLE(12,10,'x10',11,'x11','def'); 43 44CREATE TABLE t1 (a INT); 45CREATE VIEW v1 AS 46 SELECT 47 DECODE(a,1,'x1',NULL,'xNULL') AS d1, 48 DECODE(a,1,'x1',NULL,'xNULL','xELSE') AS d2, 49 DECODE_ORACLE(a,1,'x1',NULL,'xNULL') AS d3, 50 DECODE_ORACLE(a,1,'x1',NULL,'xNULL','xELSE') AS d4 51 FROM t1; 52SHOW CREATE VIEW v1; 53DROP VIEW v1; 54DROP TABLE t1; 55 56SELECT DECODE(TIME'10:20:31','10:20:31','then1','10:20:32','then2','def'); 57SELECT DECODE(TIME'10:20:32','10:20:31','then1','10:20:32','then2','def'); 58SELECT DECODE(TIME'10:20:33','10:20:31','then1',NULL,'then2NULL','10:20:33','then3','def'); 59SELECT DECODE(NULL,TIME'10:20:31','then1',NULL,'then2NULL','10:20:33','then3','def'); 60 61SELECT DECODE(TIMESTAMP'2001-01-01 10:20:31','2001-01-01 10:20:31','then1','2001-01-01 10:20:32','then2','def'); 62SELECT DECODE(TIMESTAMP'2001-01-01 10:20:32','2001-01-01 10:20:31','then1','2001-01-01 10:20:32','then2','def'); 63SELECT DECODE(TIMESTAMP'2001-01-01 10:20:33','2001-01-01 10:20:31','then1',NULL,'then2NULL','2001-01-01 10:20:33','then3','def'); 64SELECT DECODE(NULL,TIMESTAMP'2001-01-01 10:20:31','then1',NULL,'then2NULL','2001-01-01 10:20:33','then3','def'); 65 66SELECT DECODE('w1','w1','then1','w2','then2','def'); 67SELECT DECODE('w2','w1','then1','w2','then2','def'); 68SELECT DECODE('w3','w1','then1',NULL,'then2NULL','w3','then3','def'); 69SELECT DECODE(NULL,'w1','then1',NULL,'then2NULL','w3','then3','def'); 70 71SELECT DECODE(1,1,'then1',2,'then2','def'); 72SELECT DECODE(2,1,'then1',2,'then2','def'); 73SELECT DECODE(3,1,'then1',NULL,'then2NULL',3,'then3','def'); 74SELECT DECODE(NULL,1,'then1',NULL,'then2NULL',3,'then3','def'); 75SELECT DECODE(CAST(NULL AS SIGNED),1,'then1',NULL,'then2NULL',3,'then3','def'); 76 77SELECT DECODE(1.0,1.0,'then1',2.0,'then2','def'); 78SELECT DECODE(2.0,1.0,'then1',2.0,'then2','def'); 79SELECT DECODE(3.0,1.0,'then1',NULL,'then2NULL',3.0,'then3','def'); 80SELECT DECODE(NULL,1.0,'then1',NULL,'then2NULL',3.0,'then3','def'); 81SELECT DECODE(CAST(NULL AS DECIMAL),1.0,'then1',NULL,'then2NULL',3.0,'then3','def'); 82 83SELECT DECODE(1e0,1e0,'then1',2e0,'then2','def'); 84SELECT DECODE(2e0,1e0,'then1',2e0,'then2','def'); 85SELECT DECODE(3e0,1e0,'then1',NULL,'then2NULL',3e0,'then3','def'); 86SELECT DECODE(NULL,1e0,'then1',NULL,'then2NULL',3e0,'then3','def'); 87SELECT DECODE(CAST(NULL AS DOUBLE),1e0,'then1',NULL,'then2NULL',3e0,'then3','def'); 88 89SELECT DECODE(NULL,NULL,1,2) FROM DUAL; 90SELECT DECODE(NULL,10,10,NULL,1,2) FROM DUAL; 91 92SELECT DECODE_ORACLE(NULL,NULL,1,2) FROM DUAL; 93SELECT DECODE_ORACLE(NULL,10,10,NULL,1,2) FROM DUAL; 94 95CREATE OR REPLACE TABLE t1 (a VARCHAR(10) DEFAULT NULL); 96INSERT INTO t1 VALUES (NULL),(1); 97SELECT a, DECODE(a,NULL,1,2) FROM t1; 98DROP TABLE t1; 99