1

但是,我有一个案例陈述;我有两个错误。我似乎无法找到修复错误的答案。

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

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

=** 附近的语法不正确

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

任何帮助,将不胜感激。

4

3 回答 3

3

看起来您确实想像以前那样执行UPDATEusingCASE语句,而不是UPDATE表中的数据

UPDATE #TMP
SET webid_Val = 
    (CASE when webid Is NULL
        then 'NOT COMPLIANT'
        else 'COMPLIANT'
        end)
于 2012-06-11T17:59:44.823 回答
1

如果我正确理解你的笔记,你想要做一个更新语句,而不是一个选择语句。此外, 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)
于 2012-06-11T17:58:24.863 回答
1

(The following answer assumes Sql Server)
You cannot do an update with a select statement.

If you are trying to return data to a client application or user, use

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

or if you're trying to update data in the original temp table, use the following:

UPDATE #tmp SET 
webid_Val = CASE 
    WHEN #TMP.webid IS NULL then 'NOT COMPLIANT'
    ELSE 'COMPLIANT'
END
FROM #TMP
于 2012-06-11T18:01:30.470 回答