是否有定义的规则用于在BEGIN...END
块下对T-SQL语句进行分组?
因为当我在BEGIN...END
语句OR CASE
语句中尝试IIF
块时,它会失败。
我需要BEGIN...END
阻止,因为我想在CASE
结果下执行多项操作。
SELECT
CASE @ChargePaid
WHEN 1 THEN
BEGIN
SELECT 'Paid'
END
WHEN 0 THEN
BEGIN
SELECT 'Not Paid'
END
END
OR
SELECT IIF( @ChargePaid > 0, BEGIN SELECT 'Paid' END , BEGIN SELECT 'Not Paid' END )
修改
IF @cond = 'First'
WITH CTE AS (
SELECT 'A missing' Result
UNION
SELECT 'B missing' Result
UNION
SELECT 'C missing' Result
)
SET @msg = SELECT Result from CTE
IF @cond = 'Second'
WITH CTE AS (
SELECT 'A missing' Result
UNION
SELECT 'B missing' Result
UNION
SELECT 'C missing' Result
)
SET @msg = SELECT Result from CTE
IF @ChargePaid = 0
...
Some code goes here to generate the message.
Then I store the actual message into @msg variable.
...
In the end I store the @msg values (I trim the @msg if it requires) to the table.
我想要的是:
我想验证@ChargePaid条件。 如果它是假的,我想避免进一步处理以优化代码和将缺少的信息存储到@msg variable \ table。
答案 0 :(得分:6)
BEGIN
/ END
分隔程序语句。
包含一系列Transact-SQL语句,以便可以执行一组Transact-SQL语句。
CASE
阻止接受表达式。
评估条件列表并返回多个可能的结果表达式之一。
所以你试图将一个方形钉固定在圆孔中。