这是我的存储过程中的脚本
IF(@Param1+@Param2 = 0)
BEGIN
INSERT INTO @TempTable values ('value1',null);
END
ELSE
BEGIN
INSERT INTO @TempTable values ('value2',@Param1+@Param2);
END
是否有更简洁的方法在不使用if和else的情况下进行插入。我的存储过程中有很多这样的计算。所以我想避免if和else。
答案 0 :(得分:4)
你可以在
时使用案例INSERT INTO @TempTable VALUES
(CASE WHEN @Param1 + Param2 = 0 THEN 'value1' ELSE 'value2' END,
CASE WHEN @Param1 + Param2 = 0 THEN NULL ELSE @PARAM1 + @PARAM2 END)
答案 1 :(得分:3)
以下是使用nullif()
编写此内容的方法:
INSERT INTO @TempTable
SELECT 'value1', NULLIF(@Param1 + @Param2, 0);
您应该明确列出插入列中的列:
INSERT INTO @TempTable(col1, col2)
SELECT 'value1', NULLIF(@Param1 + @Param2, 0);