nor*_*ndo 11 sql-server case-statement
有没有办法在SQL中使CASE语句像C#中的case语句一样?我不想做的是下面的例子,但如果那是我唯一的选择,我想我会选择它.
例:
@NewValue =
CASE
WHEN @MyValue = '1' THEN CAST(@MyValue AS int)
WHEN @MyValue = '2' THEN CAST(@MyValue AS int)
ELSE NULL
END
Run Code Online (Sandbox Code Playgroud)
编辑:
我正在使用SQL Server.
Mar*_*ers 11
回答你的具体问题:不,它不能.
例如,请参阅CASE的MySQL文档.每个人都WHEN
必须拥有THEN result
,而且没有办法解决这个问题.在THEN
没有标记为可选.这同样适用于我使用过的所有其他RDBMS.
这是另一个例子:Sql Server的CASE表达式
你已经有了一个很好的替代方式来发布评论,所以我不会在这里重复.
你也可以这样做:
@NewValue =
CASE
WHEN @MyValue in ( '1', '2' ) THEN CAST(@MyValue AS int)
ELSE NULL
END
Run Code Online (Sandbox Code Playgroud)
或者像这样:
CASE @MyValue
WHEN '1' THEN CAST(@MyValue AS int)
WHEN '2' THEN CAST(@MyValue AS int)
ELSE null
END
Run Code Online (Sandbox Code Playgroud)
即使在这种情况下,@MyValue in ('1','2')
这将更有意义.
归档时间: |
|
查看次数: |
6241 次 |
最近记录: |