Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server CTE中是否有任何方法可以执行select on of WITH子句?_Sql_Sql Server_Tsql_Common Table Expression - Fatal编程技术网

在SQL Server CTE中是否有任何方法可以执行select on of WITH子句?

在SQL Server CTE中是否有任何方法可以执行select on of WITH子句?,sql,sql-server,tsql,common-table-expression,Sql,Sql Server,Tsql,Common Table Expression,我有一个正常工作的CTE查询。我在一个应用程序中使用这个查询,该应用程序在上面进行选择并给出错误信息 与的语法不正确 有什么方法可以让我在上面选择吗 select(columns) from (WITH CTE AS( #code )) 不幸的是,SQL Server不支持这种语法。您需要重写查询: WITH CTE AS( #code ) SELECT * FROM CTE; 或者用视图包装查询并从中选择。首先声明CTE,然后在下面的语句中从中选择 ;WITH cte

我有一个正常工作的CTE查询。我在一个应用程序中使用这个查询,该应用程序在上面进行选择并给出错误信息

与的语法不正确

有什么方法可以让我在上面选择吗

select(columns) from
(WITH CTE AS(
     #code
))

不幸的是,SQL Server不支持这种语法。您需要重写查询:

WITH CTE AS(
     #code
)
SELECT *
FROM CTE;

或者用视图包装查询并从中选择。

首先声明CTE,然后在下面的语句中从中选择

;WITH cte AS 
(
 select 1 AS col
)
SELECT col
FROM cte

删除with子句并执行以下操作

select col1, col2, col3 from
(select col1, col2, col3 from table  ) as CTE

唯一的缺点是派生表只能使用一次,不像真正的CTE

我的查询在执行时工作正常。这里的问题是我无法控制的应用程序,它在我的查询上执行select操作。@gdanton我将在CTE上创建视图,并允许应用程序查询视图。好的。谢谢你的回复。