Done? |
Feature |
Example |
☑ |
No table |
|
Column |
References |
a |
1 (literal) |
b |
'2' (literal) |
|
☑ |
Table access |
-- table : id, name
SELECT * FROM table
|
Column |
References |
id |
table.id |
name |
table.name |
|
☑ |
Derived table |
-- table : id, name
SELECT * FROM
(SELECT * FROM table) AS alias
|
Column |
References |
id |
alias.id table.id |
name |
alias.name table.name |
|
☑ |
Derived table (Non-Alias) |
-- table : id, name
SELECT * FROM
(SELECT * FROM table)
|
Column |
References |
id |
derived.id table.id |
name |
derived.name table.name |
|
☑ |
Specify columns to table alias |
-- table : id, name
SELECT * FROM table AS alias(a, b)
|
Column |
References |
a |
alias.a table.id |
b |
alias.b table.name |
|
☑ |
Inline derived table |
SELECT * FROM
(
VALUES (1, 2), (3, 4)
) AS inline_table(a, b)
|
Column |
References |
a |
inline_table.a 1 (literal) 3 (literal) |
b |
inline_table.b 2 (literal) 4 (literal) |
|
☐ |
Table function |
-- function : id, name
SELECT * FROM tbl_func('table function')
|
Column |
References |
id |
no reference |
name |
no reference |
|
☐ |
Table variable |
|
|
☑ |
Common table expression |
WITH cte AS (SELECT 1 AS n)
SELECT * FROM cte
|
Column |
References |
n |
1 (literal) |
|
☑ |
Common table expression (Aliases) |
WITH cte (n) AS (SELECT 1)
SELECT * FROM cte
|
Column |
References |
n |
1 (literal) |
|
☑ |
Common table expression (Recursive) |
WITH RECURSIVE cte AS (
SELECT 1 AS n
UNION ALL
SELECT n + 1 FROM cte WHERE n < 10
)
SELECT * FROM cte
|
Column |
References |
n |
1 (literal) |
|
cte.n (recursive) |
|
☑ |
Join tables |
-- left_table : name, uid
-- right_table : age, uid
SELECT * FROM
left_table l
JOIN right_table r ON l.uid = r.uid
|
Column |
References |
name |
left_table.name |
uid |
left_table.uid |
age |
right_table.age |
uid |
right_table.uid |
|
☑ |
Join tables (Pivot columns) |
-- left_table : name, uid
-- right_table : age, uid
SELECT * FROM
left_table
JOIN right_table USING (uid)
|
Column |
References |
uid |
left_table.uid right_table.uid |
name |
left_table.name |
age |
right_table.age |
|
☑ |
Union many tables |
SELECT a FROM first_table
UNION ALL
SELECT b FROM second_table
|
Column |
References |
a |
first_table.a second_table.b |
|
☐ |
Table pivot |
|
|
☐ |
Table unpivot |
|
|
☑ |
Trace view definition |
-- table_view : a, b
-- table : id, name
SELECT * FROM table_view
|
Column |
References |
a |
table_view.a table.id |
b |
table_view.b table.name |
|
☐ |
Trace variable definition |
|
|
☐ |
Execute prepared table query |
|
|
☐ |
Call table procedure |
|
|