2

テーブルの値を更新するために作成した次のSQLがあります。

Update Table
SET S_Type = 'Versus'
Where S_Type = 'REGULAR'
SET S_Type = 'Free'
Where S_Type = 'CASH';

私のSQLはかなり錆びていて、同僚から何か問題があると言われましたが、何がわかりませんでした。

頭に浮かぶ唯一のことは、セット内のTable.ColumnとWhereコードを参照していないことです。

列自体の更新に問題はありますか?複数の値の列を更新する場合のベストプラクティスは何ですか?

乾杯

4

3 に答える 3

6

ここでは、case ステートメントを使用し、結果を where 句のように検索します。

update tablename
set S_Type = (case S_Type  when 'REGULAR' then 'Versus'
                           when 'CASH' then 'free' 
                           else s_type 
                           end)
于 2012-11-30T10:27:26.140 に答える
2
Update YourTable
set S_Type = 
    case S_Type 
        when 'REGULAR' then 'Versus'
        when 'CASH' then 'free' 
        else s_type 
        end
于 2012-11-30T10:21:39.567 に答える
0

SQL Server を使用していますか? 2012 を使用している場合は、新しい CHOOSE または IIF 機能を使用して、単純化された条件付き更新ステートメントを記述できるようになりました。

Update YourTable
set S_Type = IIF(S_Type = 'REGULAR', 'Versus', 'free') 

私の2ペニーの価値。

于 2012-11-30T11:05:02.970 に答える