File: test_null_if.test

package info (click to toggle)
duckdb 1.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 299,196 kB
  • sloc: cpp: 865,414; ansic: 57,292; python: 18,871; sql: 12,663; lisp: 11,751; yacc: 7,412; lex: 1,682; sh: 747; makefile: 558
file content (54 lines) | stat: -rw-r--r-- 975 bytes parent folder | download | duplicates (4)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# name: test/sql/function/generic/test_null_if.test
# description: Test NULL IF statement
# group: [generic]

# NULL IF
query T
SELECT NULLIF(NULLIF ('hello', 'world'), 'blabla');
----
hello

# NULL IF with subquery
statement ok
CREATE TABLE test (a STRING);

statement ok
INSERT INTO test VALUES ('hello'), ('world'), ('test')

statement ok
CREATE TABLE test2 (a STRING, b STRING);

statement ok
INSERT INTO test2 VALUES ('blabla', 'b'), ('blabla2', 'c'), ('blabla3', 'd')

query T
SELECT NULLIF(NULLIF ((SELECT a FROM test LIMIT 1 offset 1), a), b) FROM test2
----
world
world
world

statement ok
DROP TABLE test;

# NULL IF with strings
statement ok
CREATE TABLE test3 (a INTEGER, b INTEGER);

statement ok
INSERT INTO test3 VALUES (11, 22), (13, 22), (12, 21)

query T
SELECT NULLIF(CAST(a AS VARCHAR), '11') FROM test3;
----
NULL
13
12

query IT
SELECT a, CASE WHEN a>11 THEN CAST(a AS VARCHAR) ELSE CAST(b AS VARCHAR) END FROM test3 ORDER BY 1;
----
11	22
12	12
13	13