tim1986
Goto Top

MSSQL alphanumerische daten numerisch machen

Ich müßte eine spalte in einer tabele mit einer alphanummerischen eingabe "c########" numerisch machen sprich das "c" herausnehmen
es handelt sich hierbei um artikelnummern daher ist die länge unterschiedlich, ich hab mir die tabelle mal angegeuckt es sind knapp 600 datensätze und ich hab keine lust die per hand zu bearbeiten, wie ihr sicher versteht^^ würd mich also über ne schnelle hilfe freuen
mfg der tim

Ich müßte eine spalte in einer tabele mit einer alphanummerischen eingabe "c########" numerisch machen sprich das "c" herausnehmen
es handelt sich hierbei um artikelnummern daher ist die länge unterschiedlich, ich hab mir die tabelle mal angegeuckt es sind knapp 600 datensätze und ich hab keine lust die per hand zu bearbeiten, wie ihr sicher versteht^^ würd mich also über ne schnelle hilfe freuen

mfg der tim

Content-Key: 92760

Url: https://administrator.de/contentid/92760

Printed on: April 24, 2024 at 05:04 o'clock

Member: kirmet
kirmet Jul 24, 2008 at 07:29:29 (UTC)
Goto Top
Hm.... meinst du mit numerisch machen, dass du einen String von Ziffern erhaelst, oder dass es Integers sind? Für ersteren Fall geht dieses:

UPDATE tabelle SET artikelnummer = SUBSTR(artikelnummer,2)

Für letzteres (habe ich aber nicht getestet), müsste das gehen:

UPDATE tabelle SET artikelnummer2 = CAST(SUBSTR(artikelnummer,2) AS INTEGER)
Member: tim1986
tim1986 Jul 24, 2008 at 12:40:15 (UTC)
Goto Top
die substring funktion erfordert drei argumente!

aber auch nur wenn ich tatsächlich "substring" schreibe und
nicht "substr"

bitte um schnelle hilfe muss demnächst fertig werden

und vielen dank für die bisherige hilfe
Member: tim1986
tim1986 Jul 24, 2008 at 12:43:04 (UTC)
Goto Top
hab grad noch das hier gefunden


UPDATE art SET artikelnummer = ('' + SUBSTRING(Nummer FROM 2)) WHERE Nummer LIKE 'c%'  

glaube das ich damit etwas änliche bewirken würde ich weiß nur nicht genau was^^
Member: kirmet
kirmet Jul 24, 2008 at 22:21:40 (UTC)
Goto Top
OK, wie ich es gelesen habe ist SUBSTRING(nummer FROM 2) gleich SUBSTR(str,pos). Aber sei's drum. (Hab kein mssql, sondern nur eine kurzreferenz.)

vllt kurze erklaerung dessen, was du bewirkst.
Alle Zeilen, in denen Nummer mit einem 'c' beginnt, wird artikelnummer ein leerer String plus der String ohne das 'c' der spalte artikelnummer zugeordnet. Das ist eig. genau das, was du wohl brauchst. Ich weiss aber nicht, wieso das '' + nötig sein soll. m.e. kann man es weglassen. ein casting findet bei der variante jedenfalls nicht statt.

in der referenz ueber sql server gibt es im uebrigen die variante mit "str FROM pos" nicht, sondern nur mit length, dass also SUBSTRING(Nummer, 2 ,LENGTH(Nummer)-1)) nehmen. vllt klappt das. kann's leider nicht testen