我想使用一条CASE
语句在SQL Server中设置一个变量。例如:
DECLARE @UNITY VARCHAR(5) DECLARE @AUX VARCHAR(5) CASE WHEN @UNITY = 'U1' THEN @AUX = 'M1' WHEN @UNITY = 'U2' THEN @AUX = 'M2' WHEN @UNITY = 'U3' THEN @AUX = 'M3' END
Zohar Peled.. 5
您不能case
用作流控制。SQL case
是一个根据条件返回标量值的表达式。备注部分对此
进行了详细记录:
CASE表达式不能用于控制Transact-SQL语句,语句块,用户定义的函数和存储过程的执行流程。有关流控制方法的列表,请参见流控制语言(Transact-SQL)。
可以这样编写工作代码:
DECLARE @UNITY VARCHAR(5) DECLARE @AUX VARCHAR(5) SET @AUX = CASE @UNITY WHEN 'U1' THEN 'M1' WHEN 'U2' THEN 'M2' WHEN 'U3' THEN 'M3' END
注意为简洁起见,我使用简单CASE表达式语法。
您不能case
用作流控制。SQL case
是一个根据条件返回标量值的表达式。备注部分对此
进行了详细记录:
CASE表达式不能用于控制Transact-SQL语句,语句块,用户定义的函数和存储过程的执行流程。有关流控制方法的列表,请参见流控制语言(Transact-SQL)。
可以这样编写工作代码:
DECLARE @UNITY VARCHAR(5) DECLARE @AUX VARCHAR(5) SET @AUX = CASE @UNITY WHEN 'U1' THEN 'M1' WHEN 'U2' THEN 'M2' WHEN 'U3' THEN 'M3' END
注意为简洁起见,我使用简单CASE表达式语法。