2017-07-17 5 views
0

Ich habe eine Tabelle, die eine Spalte enthält, die ich aktualisieren muss, wenn die Länge dieses Wertes gleich 1 ist, die Sache ist, dass, wenn das wahr ist, ich brauche Um diesen Wert zu erhalten und eine 0 davor zu verketten, zum Beispiel:SQL Server: Aktualisiere eine Spalte, verkette Char mit diesem Spaltenwert

Wenn der Wert der Spalte gleich "5" ist, muss ich diese Zeile auf "05" aktualisieren, ich muss dies für alle Zeilen tun das entspricht diesen Kriterien.

Ich versuche dies:

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

Es funktioniert nicht, weil die Innen wählen, wie kann ich dieses Problem beheben ?.

Danke.

+0

Tag Ihre Frage mit der Datenbank, die Sie verwenden. Geben Sie außerdem Beispieldaten und gewünschte Ergebnisse an. –

Antwort

2

Ich denke, das tut, was Sie wollen:

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

Hinweis: Viele Datenbanken LPAD() oder eine ähnliche Funktion für padding-Werte auf der linken Seite zu unterstützen.

In SQL Server, würden Sie eher schreiben dies als:

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

Sie brauchen nicht eine verschachtelte SELECT Anweisung - die Spalte wie diese verweisen kann:

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