如何在UPDATE语句中使用IF类型结构?

时间:2014-06-18 21:19:10

标签: sql sql-server sql-update

在T-SQL中,您可以在执行CASE时使用SELECT语句来确定要返回的数据类型。我想做类似的事情,但不是在SELECT语句中,而是在UPDATE语句中。我不知道这是不是正确的格式,但希望你能从中得到这个想法。

这是我正在尝试做的事情:

CREATE PROCEDURE spSomePS
    @Number1 int,
    @Number2 int,
    @Amt money
AS
BEGIN
    UPATE SomeTable
    CASE @Number1 +1 = @Number2
         MoneyColumn = MoneyColumn - @Amt
    ELSE
         MoneyColumn = MoneyColumn + @Amt
    END -- end the CASE statement

那么我正在尝试做什么还是有其他语法?

1 个答案:

答案 0 :(得分:6)

您可以在CASE语句中使用UPDATE表达式,如SELECT语句中所示。

CREATE PROCEDURE spSomePS
@Number1 int,
@Number2 int,
@Amt money
AS
BEGIN
UPATE SomeTable
SET MoneyColumn = 
  CASE WHEN @Number1 +1 = @Number2
       THEN MoneyColumn - @Amt
       ELSE MoneyColumn + @Amt
  END -- end the CASE statement