Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

To use multiple with statement by union all

Tags:

sql

sql-server

WITH L1 AS
(
   SELECT
)
SELECT A FROM L1

UNION ALL

SELECT A FROM TABLE

UNION ALL

WITH L2 AS
(
   SELECT
)
SELECT A FROM L2

UNION ALL

WITH L3 AS
(
   SELECT
)
SELECT A FROM L3

I get an error

Incorrect syntax near the keyword 'with'. If this statement is a common table expression or an xmlnamespaces clause, the previous statement must be terminated with a semicolon."

Please help

like image 475
vijay kumar Avatar asked Aug 14 '14 20:08

vijay kumar


1 Answers

You cannot use WITH in the middle of a query expression. WITH is used to build up intermediate queries for use by other queries immediately after (meaning it cannot be used by multiple independent queries).

So you probably want something like:

WITH L1 
AS
(
    SELECT ...
),
L2 AS
(
    SELECT ...
),
L3 AS
(
    SELECT ...
)

// begin final query    
SELECT A FROM L1
UNION ALL
SELECT A FROM TABLE
UNION ALL
SELECT A FROM L2
UNION ALL
SELECT A FROM L3
like image 126
D Stanley Avatar answered Oct 05 '22 00:10

D Stanley