我想在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
但仅当结果是单个值(只有一个条目的列)并且不返回列名时才有效。
简单地重用声明的结果真的很难吗?!