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 verstehtwü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-ID: 92760

Url: https://administrator.de/forum/mssql-alphanumerische-daten-numerisch-machen-92760.html

Ausgedruckt am: 27.12.2024 um 19:12 Uhr

kirmet
kirmet 24.07.2008 um 09:29:29 Uhr
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)
tim1986
tim1986 24.07.2008 um 14:40:15 Uhr
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
tim1986
tim1986 24.07.2008 um 14:43:04 Uhr
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^^
kirmet
kirmet 25.07.2008 um 00:21:40 Uhr
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