2016-04-22 2 views
0

値が「< 500」、「> 500」の列が数百行あります。それらは唯一の2つの数字です。今、私はすべての '< 500'を 'xx'で、すべて '> 500'を 'yy'で置き換えたいと思います。SQL:複数の行の2つの値を1つの列に置き換えます。

ではなく、以下のように2つの別々の更新クエリを使用するよりも、単一のSQLクエリの値の両方を交換する方法はあります:

UPDATE [table] SET [column] = 'xx' WHERE [column] = '< 500'; 
UPDATE [table] SET [column] = 'yy' WHERE [column] = '> 500'; 

私はこのためのケースを使用してみましたが、それが動作しませんでした。

+0

あなたの構文は、SQL Serverはので、私は、oracleタグを削除示唆しています。 –

答えて

3

はい、caseステートメントを使用します。

UPDATE [table] 
    SET [column] = (CASE WHEN [column] = '< 500' THEN 'xx' ELSE 'yy' END) 
    WHERE [column] IN ('< 500', '> 500'); 
+0

あなたは私よりも速くタイプします@Gordon :) –

+0

それはトリックでした。ありがとう@ゴードン。 :) – Leo

関連する問題