SQL Server:重用(结果)没有CTE(公用表表达式)或临时表的语句

时间:2016-03-14 18:25:38

标签: sql-server code-reuse

我想在IF子句中重用SQL语句的结果表。

If (SELECT Count(*) FROM TABLE = 0)
...
ELSE
SELECT COLUMN FROM TABLE

CTE仅用于单个表达式,不允许使用IF语句。

下面

How can I use if statement after a CTE (SQL Server 2005)

是使用临时表的解决方法。

出于安全原因,我不允许使用DROP命令,因此我不能DROP临时表以便允许超过1次执行语句(如果临时表,则选择失败已存在)。

我试图(误)使用CASE:

WITH SET AS (..)
SELECT
WHEN CASE ((SELECT Count(*) FROM SET) = 0)
...
ELSE
SELECT COLUMN FROM SET

但仅当结果是单个值(只有一个条目的列)并且不返回列名时才有效。

简单地重用声明的结果真的很难吗?!

0 个答案:

没有答案