lava-oushudb-dt-sql-parser/test/parser/mysql/syntax/fixtures/parenthesizedQuery.sql
琉易 428d851913
feat: #190 improve mysql grammer (#196)
* refactor: generic rename to mysql

* refactor: g4 with mysql syntax

* test: mysql syntax

* refactor: remove useless keywords

* refactor: remove nonReserved keywords

* refactor: lint specificFunction

---------

Co-authored-by: liuyi <liuyi@dtstack.com>
2023-11-27 15:25:40 +08:00

51 lines
1.5 KiB
SQL

-- https://dev.mysql.com/doc/refman/8.0/en/parenthesized-query-expressions.html
/* parenthesized_query_expression:
( query_expression [order_by_clause] [limit_clause] )
[order_by_clause]
[limit_clause]
[into_clause]
query_expression:
query_block [set_op query_block [set_op query_block ...]]
[order_by_clause]
[limit_clause]
[into_clause]
query_block:
SELECT ... | TABLE | VALUES
order_by_clause:
ORDER BY as for SELECT
limit_clause:
LIMIT as for SELECT
into_clause:
INTO as for SELECT
set_op:
UNION | INTERSECT | EXCEPT */
(SELECT 1 AS result UNION SELECT 2);
(SELECT 1 AS result UNION SELECT 2) LIMIT 1;
(SELECT 1 AS result UNION SELECT 2) LIMIT 1 OFFSET 1;
(SELECT 1 AS result UNION SELECT 2) ORDER BY result DESC LIMIT 1;
(SELECT 1 AS result UNION SELECT 2) ORDER BY result DESC LIMIT 1 OFFSET 1;
(SELECT 1 AS result UNION SELECT 3 UNION SELECT 2) ORDER BY result LIMIT 1 OFFSET 1 INTO @var;
SELECT @var;
SELECT a FROM t1 EXCEPT SELECT b FROM t2 INTERSECT SELECT c FROM t3;
SELECT a FROM t1 EXCEPT (SELECT b FROM t2 INTERSECT SELECT c FROM t3);
(SELECT * FROM t1 ORDER BY a) UNION (SELECT * FROM t2 ORDER BY b) ORDER BY z;
(SELECT 1 LIMIT 1) UNION (VALUES ROW(2) LIMIT 1);
(VALUES ROW(1), ROW(2) LIMIT 2) EXCEPT (SELECT 2 LIMIT 1);
VALUES ROW(1), ROW(2) INTERSECT VALUES ROW(2), ROW(1) LIMIT 1;
(SELECT 1 LIMIT 1) UNION (SELECT 2 LIMIT 1) LIMIT 1;
(SELECT 1 LIMIT 1) UNION (SELECT 2) LIMIT 1;
(SELECT 'a' UNION SELECT 'b' LIMIT 2) LIMIT 3;