问题描述
我尝试将不同的来源与Azure Stream Analytics上的UNION语句结合使用。 通常,这可以正常工作:
SELECT
date,value
FROM source1
UNION
SELECT
date,value
FROM source2
但是现在我需要一些需要WITH语句的计算,所以我希望这会起作用:
SELECT
date,value
FROM source1
UNION
(WITH tempTab AS (
SELECT
date,value
FROM source2
SELECT
date,value
FROM tempTab
)
(我知道此WITH语句的示例完全是愚蠢的,但让我们假设我有一个现实世界中的情况是有必要的。让我们进一步假设WITH语句是独立运行的,即如果我省略了首先选择,直到UNION之后为止
在此版本中,我收到一条通知,指出“ WITH”语句附近存在语法错误。有没有办法解决语法错误,并使WITH和UNION语句在Stream Analytics上一起工作?
解决方法
对于当前的ASA语法/语义,与T-SQL不同,WITH子句只允许在查询中首先出现。
您只能执行“将step1用作(...),step2用作(...),...”,然后在select子句中使用step1,step2,...中的任何一个作为from子句中的源。
联合可以在WITH后面的select子句中使用,也可以在单个步骤定义中使用。