praktikantin

SQL Script

geschlossengelöstFrageDatenbanken Entwicklung
Unbekannter Befehl

Ich habe dieses SQL Script:

select T1."FEGGNB" as c1,
T1."FEABBJ" as c2,
T1."FEGHNB" as c3,
T2."DHDCCD" as c4,
T2."DHCVNB" as c5,
T2."DHA3CD" as c6,
T2."DHAPTX" as c7,
T3."DDARQT" as c8,
T3."DDDUVA" as c9,
T3."DDAAGQ" as c10,
T3."DDAITX" as c11,
T3."DDG6CD" as c12,
'20' || (substring((cast_numberToString(cast_integer(T1."FEGHNB"))) from 2 for 6)) as c13 from "ABC620"."AMFLIBX"."MBF9REP" T1,
"ABC620"."AMFLIBX"."MBDHREP" T2,
"ABC620"."AMFLIBX"."MBDDREP" T3
where (((T1."FEGGNB" = T2."DHGGNB") and (T1."FEHYNB" = T2."DHHYNB")) and (T1."FEABBJ" = T2."DHCANB"))
and ((((T2."DHAENB" = T3."DDAENB") and (T2."DHDCCD" = T3."DDDCCD"))
and (T2."DHCVNB" = T3."DDCVNB")) and (T2."DHK4NB" = T3."DDK4NB"))
and ((T1."FEGHNB" >= 1040101) and (T1."FEGHNB" <= 1300101))

Aber ich verstehe diesen Befehl nicht:
'20' || (substring((cast_numberToString(cast_integer(T1."FEGHNB"))) from 2 for 6)) as c13 from "ABC620"."AMFLIBX"."MBF9REP" T1

Ist es vielleicht wenn 20 in T1 steht oder wenn dieser Befehl--->(substring((cast_numberToString(cast_integer(T1."FEGHNB"))) from 2 for 6)), na diesen Befehl verstehe ich ganz und gar nicht...
Was bedeutet denn der ganze Befehl überhaupt?

Danke für die Hilfe
Gruß Julia
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 54797

Url: https://administrator.de/forum/sql-script-54797.html

Ausgedruckt am: 11.07.2025 um 03:07 Uhr

SlainteMhath
SlainteMhath 22.03.2007 um 15:35:58 Uhr
Aber ich verstehe diesen Befehl nicht:
'20' || (substring((cast_numberToString(cast_integer(T1."FEGHNB"))) from 2 for 6)) as C13

Also ohne das ich jetzt wüsste was das für ein SQL-Dialekt ist , würd ich aus dem Bauch raus sagen, der Befehl macht folgendes:

1. Aus T1."FEGHNB" erst einen Integer, und aus dem dann einen String
2. Aus dem Ergebnis von 1. werden ab Stelle 2 6 zeichen ausgeschnitten
3. Der String '20' wird vor das Ergebnis aus 2. geklebt.
4. Und das ganze bekommt dann den Alias C13.
Praktikantin
Praktikantin 22.03.2007 um 15:49:55 Uhr
Danke SlainteMhath,

ich wollte nur sicher sein. Hab mir schon gedacht dass der Befehl cast_numberToString die Nummer in einem String verwandelt. Das "from 2 for 6" hatte ich gar nicht verstanden. Das "||" dachte ich ist ein OR. Ich drucke mal Deine erklärung aus. Hat mir sehr geholfen!
Vielen lieben Dank SlainteMhath!

Gruß Julia
Biber
Biber 22.03.2007 um 15:56:07 Uhr
Moin Praktikantin,

aber was das für ein SQL-Dialekt ist, das würde mich auch interessieren...

Gruss
Biber
Praktikantin
Praktikantin 22.03.2007 um 16:34:15 Uhr
Moin Biber,

ich habe dieses Script aus dem Cognos Power Play Transformer exportiert. Ist wirklich etwas merkwürdig. Und es gibt keine Ergebnisse wieder (alle Zeilen sind leer). Ist wohl falsch. Deswegen wollte ich auch diese Befehle verstehen damit ich weiß was es überhaupt macht. Danke nochmals für eure Hilfe!!!
Biber
Biber 22.03.2007 um 17:19:48 Uhr
Danke für deine Antwort, Praktikantin,

eine Richtigstellung noch:
Das "||" dachte ich ist ein OR.
Mitnichten.
Das "||" ist ein String-Verkettungsoperator.
Das heißt der Teil "...... '20' || (substring (bla...) " bedeutet, dass '20' und der Substring(bla..) einen neuen String ergeben.

Also z.B. Inhalt von Feld T1.FEGHNB wäre der
- CHAR-Wert "1234567" oder ein
- LONG-Wert 1234567 oder der
- Dez(18,3)-Wert 1234567,094
... dann würde mit...
'20' || (substring((cast_numberToString(cast_integer(T1."FEGHNB"))) from 2 for 6)) as c13
insgesamt der String
---> '20' und Substring('1234567') from 2 to 6 as c13
--->== '20' || '23456' als Resultsetfeld "c13" bereitsgestellt
---> also Feldinhalt von "c13" wäre '2023456'

Gruss
Biber
Praktikantin
Praktikantin 22.03.2007 um 19:08:38 Uhr
Danke Biber,

jetzt habe ich es kapiert dank Deiner Erklärung! Tausend dank! Wenn ich eure Hilfe nicht hätte würde ich ganz schön alt aussehen. Diesen Substring Befehl sehe ich zum ersten (Schande über mich). Jetzt wo Du es sagst... Wir benutzen ja in SQL immer die AND, OR Befehle und keine Zeichen (||,&&) wie in C,C++, Java usw. Tausend dank für Deine Hilfe!!! Ich sollte mal diesen Substring Befehl näher kennenlernen face-wink

Gruß Julia
und
nochmals danke!