1

ただし、ケースステートメントがあります。私は2つのエラーを取得しています。エラーを修正するための答えが見つからないようです。

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

テーブル内のデータではなく、ステートメントUPDATEを使用して実行したいようですCASEUPDATE

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

私があなたのメモを正しく理解していれば、select ステートメントではなく update ステートメントを実行したいと考えています。また、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

(次の回答は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
于 2012-06-11T18:01:30.470 に答える