不好意思,少打了end,补上:
DECLARE @STA NVARCHAR(200),@DIS NVARCHAR(200),@temp nvarchar(200)
SET @STA = '半成品'
SET @DIS = '1报废'
SET @temp =(CASE
WHEN @DIS = '报废' THEN '废品' end)
set @sta = isnull(@temp,@STA)
SELECT @DIS,@STA
DECLARE @STA NVARCHAR(200),@DIS NVARCHAR(200),@temp nvarchar(200)
SET @STA = '半成品'
SET @DIS = '1报废'
SET @temp =(CASE
WHEN @DIS = '报废' THEN '废品'
set @sta = isnull(@temp,@STA)
SELECT @DIS,@STA
DECLARE @STA NVARCHAR(200),@DIS NVARCHAR(200)
SET @STA = '半成品'
SET @DIS = '1报废'
SET @STA =isnull( CASE
WHEN @DIS = '报废' THEN '废品12'--then后面的值要占满3个字符的位置,就可以了.可能null也是有大小的?为了保证then和else生成的结果要等长?
ELSE null end,@STA)
SELECT @DIS,@STA
DECLARE @STA NVARCHAR(200),@DIS NVARCHAR(200)
SET @STA = '半成品'
SET @DIS = '1报废'
SET @STA = CASE
WHEN @DIS = '报废' THEN '废品'
ELSE @STA end
SELECT @DIS,@STA