-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathcoalesce.sql
36 lines (29 loc) · 930 Bytes
/
coalesce.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
EXPLAIN VALUES COALESCE(1);
-- EXPLAIN: VALUES (COL1 SMALLINT) = ROW(COALESCE(1))
EXPLAIN VALUES COALESCE(1, 2);
-- EXPLAIN: VALUES (COL1 SMALLINT) = ROW(COALESCE(1, 2))
EXPLAIN VALUES COALESCE(1, 2, 3);
-- EXPLAIN: VALUES (COL1 SMALLINT) = ROW(COALESCE(1, 2, 3))
/* types */
VALUES COALESCE(1);
-- COL1: 1 (SMALLINT)
/* types */
VALUES COALESCE(1, 2);
-- COL1: 1 (SMALLINT)
/* types */
VALUES COALESCE(1, 200000000);
-- error 42804: data type mismatch in argument 2 of COALESCE: expected SMALLINT but got INTEGER
CREATE TABLE foo (f1 BIGINT);
INSERT INTO foo (f1) VALUES (NULL);
INSERT INTO foo (f1) VALUES (3);
SELECT COALESCE(f1, CAST(2 AS BIGINT)) FROM foo;
SELECT COALESCE(f1) FROM foo;
-- msg: CREATE TABLE 1
-- msg: INSERT 1
-- msg: INSERT 1
-- COL1: 2
-- COL1: 3
-- COL1: NULL
-- COL1: 3
VALUES COALESCE(1, 'hello');
-- error 42804: data type mismatch in argument 2 of COALESCE: expected SMALLINT but got CHARACTER