否则如果在sql中

时间:2010-10-05 10:48:39

标签: sql-server-2005 tsql

我必须更新表,如果在tsql中我不能使用else。它存在吗?

Status =
(
CASE
WHEN
(Status in (0))
THEN
0
ELSE IF Status in (1)
THEN 
7
ELSE
Status
END

5 个答案:

答案 0 :(得分:3)

CASE WHEN syntax确实支持多种条件:

Status = CASE WHEN Status = 0 THEN 0
              WHEN Status = 1 THEN 7
              ELSE Status
         END

由于您在两种情况下都在比较同一字段的相等性,因此可以使用较短的表示法:

Status = CASE Status WHEN 0 THEN 0
                     WHEN 1 THEN 7
                     ELSE Status
         END

答案 1 :(得分:1)

再次使用CASE WHEN:

Status = CASE WHEN Status in (0)
                THEN 0
                ELSE CASE WHEN Status in (1)
                            THEN 7
                            ELSE Status
                     END
         END

Status = CASE WHEN Status in (0) THEN 0
              WHEN Status in (1) THEN 7
              ELSE Status
         END

答案 2 :(得分:1)

您应该使用以下语法:

Status =
    (CASE WHEN (Status in (0)) THEN 0
          WHEN (Status in (1)) THEN 7
          ELSE Status
     END)

答案 3 :(得分:1)

 Status =
(
CASE
WHEN
(Status in (0))
THEN
0
WHEN Status in (1)
THEN 
7
ELSE
Status
END 

答案 4 :(得分:0)

是, 您可以在SQL中使用IF语句。 检查一下

   Declare @x int
    set @x = 29
    if @x = 29 print 'The number is 29'
    if @x = 30 print 'The number is 30'