ahm*_*md0 5 sql sql-server union select
我有几个这样的语句(使用WITH语句):
WITH valDiff AS (SELECT <ComplexClause1> AS v1 FROM [MyTable] WHERE <OtherClause1>) SELECT SUM(CASE WHEN v1 < @MaxVal THEN v1 ELSE @MaxVal END) FROM valDiff
UNION
WITH valDiff AS (SELECT <ComplexClauseN> AS v1 FROM [MyTable] WHERE <OtherClauseN>) SELECT SUM(CASE WHEN v1 < @MaxVal THEN v1 ELSE @MaxVal END) FROM valDiff
Run Code Online (Sandbox Code Playgroud)
我需要将它们合并到一个联合中,以便"一举"返回结果.这些语句本身可以正常工作,但如果我在它们之间添加单词"UNION",就像我上面所示,我得到以下错误:
关键字"UNION"附近的语法不正确.
关键字'with'附近的语法不正确.
如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则必须以分号结束前一个语句.
我究竟做错了什么?
WITH将跨越UNION中的所有子句
;WITH valDiff AS
(
whatever
)
SELECT ... FROM valDiff ...
UNION ALL
SELECT ... FROM valDiff ...
Run Code Online (Sandbox Code Playgroud)
在每个子句中使用不同的CTE(如本例所示):
;WITH CTE1 AS
(
whatever
) , CTE2 AS
(
something
)
SELECT ... FROM CTE1 ...
UNION ALL
SELECT ... FROM CTE2 ...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
934 次 |
最近记录: |