sql case语句错误
问题描述:
但是我有一个case语句;我得到两个erros。我似乎无法找到修复错误的答案。sql case语句错误
SELECT #TMP.webid_Val = CASE #TMP.webid
when 'NULL' then 'NOT COMPLIANT'
else 'COMPLIANT'
end
FROM #TMP
* * FROM附近的语法不正确。邻近期望交谈
的语法不正确= **
#TMP
是临时表。 webid是要查看条件的值 webid_val是值将被更改的列。
任何帮助,将不胜感激。
答
(以下答案假设SQL Server)的
你不能做一个更新一个选择语句。
如果你想将数据返回给客户端应用程序或用户,使用
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
答
如果我正确理解你的笔记,你想要做一个更新语句,而不是选择语句。而且,null不是一个字符串。
下面将执行选择语句,如果这是你想要的。
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)
答
它肯定看起来像你想要使用CASE
声明你的方式来执行UPDATE
不会UPDATE
的数据表
UPDATE #TMP
SET webid_Val =
(CASE when webid Is NULL
then 'NOT COMPLIANT'
else 'COMPLIANT'
end)
**为什么**你开始用'#'字符开始你的表名? – 2012-06-11 17:55:44
你是什么意思“webid_val是谁的价值将被改变的列”?你想要执行更新吗? – Taryn
是的,我是。我读过最好是使用案例陈述,然后是性能更新。 – MasterP