2012-06-11 3 views
0

У меня есть заявление о случае, однако; Я получаю два erros. Я не могу найти ответ на исправление ошибок.sq case case statement error

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

* * Неправильный синтаксис около FROM. Ожидая РАЗГОВОР

Неправильный синтаксис около = **

#TMP это временная таблица. webid - это значение, которое нужно посмотреть для условия webid_val - значение столбца, значение которого будет изменено.

Любая помощь будет оценена по достоинству.

+0

** Почему ** вы начинаете имя вашей таблицы с символа '' # ''?! –

+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

Если я правильно понимаю ваши заметки, вы хотите сделать инструкцию update, а не инструкцию 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) 
3

Он уверен, кажется, что вы хотите выполнить UPDATE с использованием CASE заявления, как вы были будет не UPDATE данных в таблица

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