SQL SQL-Query Zeichenpositionen bei einem Attribut

Excelmania

Lieutenant
Registriert
Apr. 2010
Beiträge
799
Hallo.

kann man in SQL die Zeichen an einer Position eines Attributes auswerten? Also z. B. Zeichen 4 bis 6?

Hintergrund ist, wir haben eine alte Datenbank, die vorerst weiterlaufen muss wir nicht anpassen können. Ich könnte mir aber vorstellen über ein bestehendes Attribut die erforderlichen Werte zuschlüsseln. Format: Text mit der Eingabe im Format: XXX-YYY-ZZZZZ

Wie müsste eine solche Abfrage aussehen?

Vielen Dank.
 
PHuV schrieb:
Oder man arbeitet mit einer entsprechenden PICTURE Klausel.
Also ich bin seit vielen Jahren Datenbank Admin, aber was ist denn eine Picture Klausel? Gehts vllt etwas direkter?

was der TE genau machen will verstehe ich auch nicht wirklich.

will er zeichen 4-6 austauschen wenn da z.b. ABC drinsteht?
 
Corto schrieb:
Also ich bin seit vielen Jahren Datenbank Admin, aber was ist denn eine Picture Klausel? Gehts vllt etwas direkter?
Kommt ursprünglich von Cobol, und kann in manchen SQL-Dialekten umgesetzt werden:
https://www.ibm.com/docs/en/db2/10.5?topic=types-supported-sql-data-in-cobol

Das Datum ist so ein Beispiel, wenn Du den Datentyp TO_DATE (Oracle) entsprechend einer Maske YYYY-MM-DD formatiert ausgibst, oder mit TO_CHAR (Oracle) Zahlen formatierst.

Sowas gibts auch für String-Operationen, um Zahlen und Zeichen zu unterscheiden, wird gerne bei ETL-Tools bei Konvertierungsvorgängen eingesetzt, um Strings gleich fertig formatiert zu extrahieren und auszugeben, ohne daß man SUBSTR oder anderes verwenden muß.

@Excelmania

Siehste, daß mir das nicht gleich eingefallen ist. Mit einem ETL oder ESB Tools kannst Du sowas relativ einfach lösen, die sind genau dafür geschaffen, zwischen verschiedenen Datenbanken die Daten hin und her zu konvertieren. Oder Du schaut, ob Du in den String-Fehlern Regex anwenden kannst.
https://www.freecodecamp.org/news/sql-contains-string-sql-regex-example-query/
https://www.oreilly.com/library/view/mysql-cookbook/0596001452/ch04s08.html
 
Zuletzt bearbeitet:
Zurück
Oben