如何在我的存储过程中放入案例条件

时间:2013-01-04 19:38:28

标签: sql sql-server sql-server-2008

我在存储过程中有这个查询。

在上面的查询中我有@UpdateBy字段,我需要检查@Updateby字段是否为NULL或空我需要获取AddedBy字段。如何更新我的查询?

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

也许是(CASE WHEN Isnull(@UpdateBy,'') = '' THEN @AddedBy ELSE @UpdateBy END)

编辑:以上是一般的想法。这是在存储过程的选择中它可能是什么样子。 (不要忘记两次,因为UNION):

...
    ,Current_record.value('inserted[1]/@Status','VARCHAR(10)') AS Status
    ,(CASE
        WHEN Isnull(Current_record.value('inserted[1]/@UpdatedBy','VARCHAR(100)'),'' ) = '' THEN Current_record.value('inserted[1]/@AddedBy','VARCHAR(100)')
        ELSE Current_record.value('inserted[1]/@UpdatedBy','VARCHAR(100)')
        END
    ) as UpdatedBy,
    ,CAST(Current_record.value('inserted[1]/@BaVariableId','VARCHAR(100)') AS INT) AS VariableId
...