sql case语句错误

时间:2012-06-11 17:52:17

标签: sql

然而,我有一个案例陈述;我有两个错误。我似乎找不到修复错误的答案。

SELECT #TMP.webid_Val = CASE #TMP.webid 
when 'NULL' then 'NOT COMPLIANT'
else 'COMPLIANT'
end
FROM #TMP

* * FROM附近的语法不正确。期待对话

语法不正确= **

#TMP是临时表。 webid是要查看条件的值 webid_val是将更改其值的列。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:3)

您确实希望使用UPDATE语句执行CASE,而不是UPDATE表格中的数据

UPDATE #TMP
SET webid_Val = 
    (CASE when webid Is NULL
        then 'NOT COMPLIANT'
        else 'COMPLIANT'
        end)

答案 1 :(得分:1)

如果我正确理解你的笔记,你想要做一个更新语句,而不是一个select语句。此外,null不是字符串。

如果你想要的话,下面将执行select语句。

select case #TMP.webid when null then 'NOT COMPLIANT'
        else 'COMPLIANT' end
from #TMP

如果要更新表格中的每一行:

update #TMP
set webid_Val = (case webid when null then 'NOT COMPLIANT'
            else 'COMPLIANT' end)

答案 2 :(得分:1)

(以下答案假设是Sql Server)
您无法使用select语句进行更新。

如果您尝试将数据返回给客户端应用程序或用户,请使用

SELECT webid_Val = CASE 
    WHEN #TMP.webid IS NULL then 'NOT COMPLIANT'
    ELSE 'COMPLIANT'
END
FROM #TMP

或者如果您尝试更新原始临时表中的数据,请使用以下命令:

UPDATE #tmp SET 
webid_Val = CASE 
    WHEN #TMP.webid IS NULL then 'NOT COMPLIANT'
    ELSE 'COMPLIANT'
END
FROM #TMP