Anmelden

View Full Version : SQL Frage zum Create View



cicero22
10-11-03, 09:59
Hallo Forum!

Wir möchten hier gerne einen View erzeugen. Dabei möchten wir gerne eine Sortierung vornehmen (also ein Order By) - das scheint nicht zu funktionieren.

Ist das korrekt? Wenn ja - hat jemand eine Idee, wie man trotzdem eine Sortierung in den View bekommt.

Oder müssen wir auch ein Logical File zurückgreifen?

thanx
dirk

BenderD
10-11-03, 10:11
Hallo,

SQL unterscheidet zwischen externen Objekten (ohne Zugriffspfade) und internen Objekten (PFs und Indexe). Sinn der Sache ist, dass Views keine Maintenance kosten, man also soviele anlegen kann, wie man will, ohne dass Overhead entsteht.
Views sind zur Verwendung mit SQL gedacht und dann gibt man bei dem Zugriff eine ORDER BY Klausel an und alles passt.
Wenn Du nun aber mit Record Level Access (read, chain und Konsorten) eine View verwenden willst, bleibt Dir entweder ein DDS logical File, oder eben die Umstellung des Programms auf SQL. Letzteres würde ich Dir empfehlen.

mfg

Dieter Bender

cicero22
10-11-03, 10:19
naja - wir wollen den view mit odbc weiterverwenden...
es soll in open office eine adressliste aufsteigend nach PLZ gemacht werden...

(also entfällt leider die möglichkeit weiterer SQL´s (oder???) )

vielleicht fällt euch noch was besseres ein?

(ein problem ist nämlich auch noch, dass er dann in open office die 1. null der plz verschluckt) => ich wollte das im view mit digits(PLZ) lösen - das funktioniert auch nicht....

schade

dirk

BenderD
10-11-03, 10:52
Hallo Dirk,

open office denkt eigentlich in Standard SQL und da gibt es nirgends ORDER BY bei Views; ich bin zwar kein open office Experte, aber da muss es im Open Office die Möglichkeit geben die Sortierung anzugeben. Server seitig, sprich AS400 musst Du natürlich dafür sorgen einen Index für die Sortierung zu erstellen, damit es brummt.
Hast Du das andere mal mit einem Cast nach char versucht??? Steht in der Reference bei den Funktionen unter CHAR oder CAST.

mfg

Dieter Bender

Fuerchau
10-11-03, 12:04
@Dieter

Das Casting mit CHAR wird da auch nichts bringen, da DIGITS bereits ein Zeichenfeld liefert.

@Cicero

Das Problem scheint mir hier eine automatische Feldtyp-Erkennung (siehe auch ähnliches Problem bei Excel), die nur irgendwo in OpenOffice ggf. abgeschaltet werden kann.

Was die Sortierung angeht, so dient ein Index bzw. eine LF nur der Zugriffsoptimierung jedoch nicht automatisch der Sortierung.
Fehlt die "order by"-Klausel kann ich über das sortierte Ergebnis keine Aussage machen unabhängig davon welchen Index die AS/400 nun heranzieht.
Ich habe häufig festgestellt, dass die Sortierung der Reihenfolge der Speicherung in der PF entspricht (Faktoren hierzu sind Insert/ADD und REUSEDLT).

BenderD
10-11-03, 12:15
Hallo Baldur,

die automatische Felderkennung müsste sich eigentlich mit Hochkommas toppen lassen, die man auch in der View hinein frömmeln kann (casten und verketten mit Zeichen, eventuell escapen).

Mit der Reihenfolge, noch folgende Ergänzung: die (zufällige) Reihenfolge ohne ORDER BY Klausel, hängt von der gewählten Zugriffsstrategie ab und damit kann sie sogar von Release, PTF, Subsystem, Speicher, Menge der Daten, Belastung der Maschine, etc. abhängen, also sogar von Fall zu Fall wechseln.

mfg

Dieter Bender