2016-10-27 5 views
1

私は同じテーブルに別の列BRCDに適用される条件とテーブル分岐でBRCD_NEW列を更新したい、ここに私のコードですが、それは誤り更新列

単一行副問合せのリターンを返します複数の行

update branches set brcd_new=(
select 
case 
when BRCD between '5000' and '5999' then CONCAT('PK001',BRCD) 
else CONCAT('PK002',BRCD) 
end 
from branches); 

答えて

1

あなたがやっていることを達成するためにサブクエリを必要としません。あなたが必要とする値を取得し、SET声明の中で、あなたの列に割り当てることがCASEステートメントを使用します。

update branches 
set brcd_new = 
    case 
     when BRCD between '5000' and '5999' then CONCAT('PK001',BRCD) 
     else CONCAT('PK002',BRCD) 
    end 
-- WHERE <your filters (if needed)> 
+0

Thanku @dotnetom :) – KeenLearner