PDA

View Full Version : Sql schön positionieren



Seiten : [1] 2

Psicopatico
30-09-04, 08:25
Hi

Ich wollte fragen, wie ich meinem Sql beibringe schön positioniert zu sein. Es ist beinahe alles richtig, bis auf den Schluss. Ich habe da eine pause von 145 zeichen drin und der soll mir dann genau dort weiterpositionieren aber irgendwie tut er das nicht.

Hier ein Auszug vom Output:

.....3421 3404 8741 8965 9052 9904
...........................9396 8965
...................9921 9052 8876
............8703 8871
...................8703
.........................................9960 898
8703
............8703
..................4513 8754 8801 8897 9921
..................8703
..................8826
..................9052

(die Punkte sind nicht da, die habe ich da hingetan, damit man sieht wie es aussieht im Ouput)
Mit welchen befehlen bekomme ich das so hin?

3421 3404 8741 8965 9052 9904
9396 8965
9921 9052 8876
8703 8871
8703
9960 898
8703
8703
4513 8754 8801 8897 9921
8703
8826
9052

Mfg Psicopatico

BenderD
30-09-04, 08:50
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????
?????????????????????????????????????????????????? ????????????????????


Hi

Ich wollte fragen, wie ich meinem Sql beibringe schön positioniert zu sein. Es ist beinahe alles richtig, bis auf den Schluss. Ich habe da eine pause von 145 zeichen drin und der soll mir dann genau dort weiterpositionieren aber irgendwie tut er das nicht.

Hier ein Auszug vom Output:

.....3421 3404 8741 8965 9052 9904
...........................9396 8965
...................9921 9052 8876
............8703 8871
...................8703
.........................................9960 898
8703
............8703
..................4513 8754 8801 8897 9921
..................8703
..................8826
..................9052

(die Punkte sind nicht da, die habe ich da hingetan, damit man sieht wie es aussieht im Ouput)
Mit welchen befehlen bekomme ich das so hin?

3421 3404 8741 8965 9052 9904
9396 8965
9921 9052 8876
8703 8871
8703
9960 898
8703
8703
4513 8754 8801 8897 9921
8703
8826
9052

Mfg Psicopatico

Psicopatico
30-09-04, 09:14
tolle antwort danke :p


also meine konkrete frage gibt es einen befehl in sql mit dem ich sagen kann beginne im ouput bei spalte 269? also vorher gibt es schon einträge und dann eine pause von 145 spalten und dann soll er bei spalte 269 ansetzten.

danke

Fuerchau
30-09-04, 09:23
Nein, den gibt es nicht. Aber es gibt einen kleinen Trick:
Erstellen einer Datei mit einem Satz, 1 Feld Typ Character in maximaler länge (z.B. 5000).
Beim Select dann das Feld mittels substr(Feld, 1, nn) auswählen (nn=gewünschte Länge).
Die Datei bei "from" ohne weitere Bedingung verknüpfen, so dass der Satz mit jedem Satz verknüpft wird.

z.B.:
select f1, f2, substr(spcfld, 1, 269), f3
from myfile, myspcfile
where ...

BenderD
30-09-04, 11:07
Hallo,

tolle Frage - ich liebe Ratespiele. Machts den Antwortern doch nicht so schwer, etwas mehr Präzision bei den Fragen erleichter das antworten und spart unbezahlte Zeit.
Falls es sich um interaktives SQL handeln sollte, dann kann man Leerstellen auch so erreichen:

select ' ', kunde.*
from kunde
.....

mfg

Dieter Bender


tolle antwort danke :p


also meine konkrete frage gibt es einen befehl in sql mit dem ich sagen kann beginne im ouput bei spalte 269? also vorher gibt es schon einträge und dann eine pause von 145 spalten und dann soll er bei spalte 269 ansetzten.

danke

Fuerchau
30-09-04, 11:53
@Dieter
Jaja, und die 269 Leerzeichen muss ich genau abzählen ;)

BenderD
30-09-04, 12:28
@Baldur:

und dann wieder 124 zurück

Dieter


@Dieter
Jaja, und die 269 Leerzeichen muss ich genau abzählen ;)

BenderD
30-09-04, 12:36
@Baldur:

aber im Ernst:

select char(' ', 145), kunde.*
from kunde ...

geht auch

mfg

Dieter



@Dieter
Jaja, und die 269 Leerzeichen muss ich genau abzählen ;)

Psicopatico
30-09-04, 13:04
der select vom sql sieht so aus:

SELECTdistinct rpad(NAME,30) ||''||

rpad(VORNAME,31) ||''||

rpad(to_char(FALLEINDATUM,'DD.MM.YYYY'),10) ||''||

rpad(to_char(FALLAUSDATUM,'DD.MM.YYYY'),10) ||''||

lpad(VERWEILDAUER_I_TAGEN,4) ||''||

rpad(to_char(GEBDATUM,'DD.MM.YYYY'),10) ||''||

lpad(ALTER_I_JAHREN,3,'000') ||''||

lpad('000',3,'000') ||''||

lpad(geschlecht,1) ||''||

lpad(' ',2,' ') ||''||

lpad('0000',4,'0000') ||''||

lpad(' ',1,' ') ||''||

lpad(aus_1,1,' ') ||''||

lpad(wo_2,1,' ') ||''||

lpad(nach_3,1,' ') ||''||

lpad('A',1,'A') ||''||

rpad(substr(ICD1,1,5),5,' ') ||''||

rpad(substr(ICD2,1,5),5,' ') ||''||

rpad(substr(ICD3,1,5),5,' ') ||''||

rpad(substr(ICD4,1,5),5,' ') ||''||

rpad(substr(ICD5,1,5),5,' ') ||''||

rpad(substr(ICD6,1,5),5,' ') ||''||

rpad(substr(ICD7,1,5),5,' ') ||''||

rpad(substr(ICD8,1,5),5,' ') ||''||

rpad(substr(ICD9,1,5),5,' ') ||''||

rpad(substr(ICD10,1,5),5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

lpad(' ',5,' ') ||''||

rpad(CHOP1,4,' ') ||' '||

rpad(CHOP2,4,' ') ||' '||

rpad(CHOP3,4,' ') ||' '||

rpad(CHOP4,4,' ') ||' '||

rpad(CHOP5,4,' ') ||' '||

rpad(CHOP6,4,' ') ||' '||

rpad(CHOP7,4,' ') ||' '||

rpad(CHOP8,4,' ') ||' '||

rpad(CHOP9,4,' ') ||' '||

rpad(CHOP10,4,' ')"Name"

FROM chop_1

aber der output stimmt nicht... die leerzeichen hats irgendwie nicht reinkopiert.. wenn da steht rpad(CHOP10,4,' '), dann sieht das im original schon so aus rpad(CHOP10,4,'....') (. durch leerzeichen ersetzen). Aber irgendwie stimmt der output nicht, wenn es jetzt z.b icd1 und icd2 bei xy gibt, dann verschiebt sich das ganze am ende, wenn es jedoch 10 gibt, dann stimmt alles aber nur wenige haben 10 icd.

hoffe einer von euch hat etwas gecheckt was ich geschrieben habe :p

B.Hauser
30-09-04, 13:18
Hallo,

... und dann gibt es noch die SQL Scalare Funktion SPACE(NumerWert), mit der die angegebene Anzahl and Blanks geschrieben werden kann!

Beispiel:
SELECT space(5), space(10) concat MyField
FROM MySchema.MyFile

Birgitta