2012-06-11 34 views
0

但是我有一個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是值將被更改的列。

任何幫助,將不勝感激。

+0

**爲什麼**你開始用'#'字符開始你的表名? – 2012-06-11 17:55:44

+0

你是什麼意思「webid_val是誰的價值將被改變的列」?你想要執行更新嗎? – Taryn

+0

是的,我是。我讀過最好是使用案例陳述,然後是性能更新。 – MasterP

回答

1

(以下答案假設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 
1

如果我正確理解你的筆記,你想要做一個更新語句,而不是選擇語句。而且,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) 
3

它肯定看起來像你想要使用CASE聲明你的方式來執行UPDATE不會UPDATE的數據表

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