Files
email-tracker/external/duckdb/test/sql/pivot/unpivot_expression.test
2025-10-24 19:21:19 -05:00

65 lines
1.3 KiB
SQL

# name: test/sql/pivot/unpivot_expression.test
# description: Test expressions in UNPIVOT
# group: [pivot]
statement ok
PRAGMA enable_verification
query II
unpivot (select 42 as col1, 'woot' as col2)
on col1::VARCHAR, col2;
----
col1 42
col2 woot
query II
unpivot (select 42 as col1, 'woot' as col2)
on COLUMNS(*)::VARCHAR;
----
col1 42
col2 woot
query II
unpivot (select 42 as col1, 'woot' as col2)
on (col1 + 100)::VARCHAR, col2;
----
col1 142
col2 woot
query II
unpivot (select 42 as col1, 'woot' as col2)
on (col1 + 100)::VARCHAR AS c, col2;
----
c 142
col2 woot
query II
select * from (select 42 as col1, 'woot' as col2) UNPIVOT ("value" FOR "name" IN (col1::VARCHAR, col2))
----
col1 42
col2 woot
# subqueries
statement error
unpivot (select 42 as col1, 'woot' as col2)
on (col1 + (SELECT col1))::VARCHAR, col2;
----
<REGEX>:.*Binder Error.*UNPIVOT list cannot contain subqueries.*
statement error
unpivot (select 42 as col1, 'woot' as col2)
on random(), col2;
----
<REGEX>:.*Binder Error.*UNPIVOT clause must contain exactly one column.*
statement error
unpivot (select 42 as col1, 'woot' as col2)
on col1 + col2;
----
<REGEX>:.*Binder Error.*UNPIVOT clause must contain exactly one column.*
statement error
unpivot (select 42 as col1, 'woot' as col2)
on t.col1::VARCHAR, col2;
----
<REGEX>:.*Binder Error.*not found.*