2017-07-17 4 views
0

この値の長さが1に等しい場合、更新する必要がある列を含むテーブルがあります。その値を取得してその前に0を連結します。SQL Server:列を更新し、その列の値とcharを連結します。

カラムの値が "5"の場合、そのローを "05"に更新する必要があります。これはすべてのローに対して行う必要がありますこの基準に合致する

私はこれを試してみました:

UPDATE WS 
SET WS.used_brand=CONCAT('0',(Select WS.used_brand FROM WS)) WHERE LEN(WS.used_brand) = 1; 

それは私がこの問題を解決できるか、理由は内側のSELECTの動作しません?。

ありがとうございました。

+0

タグあなたのあなたが使っているデータベースの質問。また、サンプルデータと望ましい結果を提供してください。 –

答えて

2

私はこれが何をしたいんだと思う:

UPDATE WS 
    SET WS.used_brand = CONCAT('0', WS.used_brand) 
    WHERE LEN(WS.used_brand) = 1; 

注:多くのデータベースをサポートLPAD()または左側のパディング値に対して同様の機能。 SQL Serverでの

、あなたは可能性が高い書き込み、これを希望:

UPDATE WS 
    SET WS.used_brand = '0' + WS.used_brand 
    WHERE LEN(WS.used_brand) = 1; 
2

あなたは、ネストされたSELECT文は必要ありません - あなたはちょうどこのよう列を参照することができます。

UPDATE WS 
SET WS.used_brand=CONCAT('0', WS.used_brand) 
WHERE LEN(WS.used_brand) = 1; 
関連する問題