我需要将一些视图转换为公共表,因为where条件需要动态更改。我只能使用公共表来处理一个子查询。是否可以使用多个,如下例所示
WITH ctTableA AS (Select * FROM tableA WHERE fldAID=A)
WITH ctTableB AS (Select * FROM tableB WHERE fldAID=A)
SELECT * FROM ctTableA
INNER JOIN ctTableB ON ctTableA.fldX=ctTableB.fldX
注意: - 我知道2个表的简单内连接查询可以用于此示例,但我的真实查询要复杂得多。
我特别要求的是;我们可以在公共表语句中包含多于1个语句
答案 0 :(得分:2)
试试这个
WITH
ctTableA AS (Select * FROM tableA WHERE fldAID=A),
ctTableB AS (Select * FROM tableB WHERE fldAID=A)
SELECT * FROM ctTableA INNER JOIN ctTableB ON ctTableA.fldX=ctTableB.fldX