| Done? |
Feature |
Example |
| ☑ |
No table |
SELECT 1 AS a, '2' AS b
|
| 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 |
-- TODO
|
|
| ☑ |
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 |
-- TODO
|
|
| ☐ |
Table unpivot |
-- TODO
|
|
| ☑ |
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 |
-- TODO
|
|
| ☐ |
Execute prepared table query |
-- TODO
|
|
| ☐ |
Call table procedure |
-- TODO
|
|