在子查询中使用CTE

时间:2018-12-19 12:04:53

标签: sql sql-server subquery common-table-expression

我想在子查询中使用CTE。代码如下:

"%d=%[^|]|%[^=]=%[^|]|%s"

我不知道是否可以进行此查询,但是我在SQL Server中尝试了该查询,但出现错误,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

在SQL Server中,CTE位于第一个SELECT之前:

with cte as (
      select * from #tmpfup
      union 
      select distinct fup.object_id, datee.change_time, datee.old_value, datee.new_value
      from #tmpfup fup cross join
           #tmpdate datee
     )
select object_id, change_time,old_value, new_value   ,
       DENSE_RANK() over ( partition by object_id order by change_time) as seq_no
from cte;

请注意,您还需要在外部from子句中使用表别名(但我删除了该子查询)。

此外,某些数据库 do 支持带有子查询的CTE。 SQL Server不是其中之一。