quan81
Goto Top

SQL Server ein Befehl mit REPLACE und RTRIM

Liebes Forum ich bin wieder mal auf eure Hilfe angewiesen!

Ich muss im Microsoft SQL Server Manager eine Sicht zu einer Datenbank erstellen.
Kann mir jemand dabei helfen wie der Befehl lauten müsste wenn ich folgen erreichen will.
Die Sich hat jetzt zwei Spalten zu der Tabelle dbo.zeit_buchungen_bde, einmal prod_auftragsnr und auftragsnr.
Ich bräuchte eine dritte Spalte in der die auftragsnr um die prod_auftragsnr beschnitten wird.
Beispiel erste Zeile:
P000174 I P00017401920 I 01920 ( also soll der bereich P000174 in der Nummer gesucht werden und mir nichts ersetzt werden.
Einfach Stellen streichen würde nicht gehen weil es unterschiedliche Nummer aufbauten gibt.

Vielen Vielen Dank für die Hilfe schon!!
beispiel

Content-ID: 356346

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

Ausgedruckt am: 23.11.2024 um 14:11 Uhr

em-pie
em-pie 28.11.2017 aktualisiert um 11:16:47 Uhr
Goto Top
Moin,

eine Variante wäre sicherlich:
SELECT
 prod_auftragsnr
 , auftragsnr
 , RIGHT(auftragsnr, LEN(auftragsnr) - LEN(prod_auftragsnr)) AS "Delta"  
FROM
  dbo.zeit_buchungen_bde
LEN()
RIGHT()


Edit:
Alternativ:
SELECT
prod_ auftragsnr
 , auftragsnr
 , REPLACE(auftragsnr, prod_auftragsnr, '') AS "Delta"  
FROM
  dbo.zeit_buchungen_bde
REPLACE()

Problem beim REPLACE(), wenn deine auftragsnr. 00470047 lautet und deine prod_auftragsnr. 0047, wird alles ersetzt...

Gruß
em-pie

Edit:
zweiten Code korrigiert...
quan81
quan81 28.11.2017 aktualisiert um 11:13:59 Uhr
Goto Top
Hallo em-pie,
vielen dank dir für deine Antwort.
Nur bekomme ich folgendes Ergebnis bei der Alternativen Lösung die mir Lieber ist.

P000174 I P00017401920 I P000174 also Delta ist gleich der ersten Spalte und nicht 01920

Eine Idee?

ich glaube es müsste so aussehen!
SELECT        prod_auftragsnr, auftragsnr, REPLACE(auftragsnr, RTRIM(prod_auftragsnr), '') AS Delta  
FROM            dbo.zeit_buchungen_bde
Dankeschön

Gruß
quan81
em-pie
em-pie 28.11.2017 aktualisiert um 11:15:47 Uhr
Goto Top
Hupps..

obige Angaben hatte ich verdreht....
Richtig wäre natürlich:
 REPLACE(auftragsnr,  prod_auftragsnr, '') AS "Delta"    

Wäre dir aber auch aufgefallen, wenn du den Link mit der BEschreibung geklickt hättest face-wink


Edit für dein Edit:
Korrekt face-big-smile