我必须更新表,如果在tsql中我不能使用else。它存在吗?
Status =
(
CASE
WHEN
(Status in (0))
THEN
0
ELSE IF Status in (1)
THEN
7
ELSE
Status
END
答案 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'