PDA

View Full Version : SQL



KingofKning
15-10-09, 07:43
Hallo *all,
ich habe 2 Tabellen die ich mit sql bearbeiten will, leider sind in jeder Tabelle jeweils 100 Felder drin von denen ich aber nur jeweils die Hälfte brauche. Ich kann ja jetzt ein select feld1, feld2,feld3 from tabelle machen, gibt es da auch ein Ausschlußverfahren.
Sprich select * bis auf Feld9,feld10,feld11?

GG

B.Hauser
15-10-09, 08:05
... wenn Du jeweils die Hälfte brauchst ist es gehopst wie gesprungen, ob Du die Felder einzeln angibst oder einzeln ausschließst.

Ansonsten gibt es keine Ausschlussmöglichkeit.

Wenn Du die gleichen Felder mehrfach, d.h. in mehreren Abfragen benötigst, wäre vielleicht noch eine View eine Möglichkeit. (Auch hier musst Du beim Erstellen der View alle Felder die Du brauchst auflisten, kannst aber dann SELECT * FROM VIEW verwenden).

Birgitta

UFK
21-10-09, 15:11
Kennst Du überhaupt die Bedienerführung (F4), die es Dir erspart, alle Feldnamen einzutippen ?

Nach F4 für den SELECT-Befehl und nochmal F4 in der Eingabezeile für Felder bekommst Du eine Feldliste, aus der die gewünschten Felder ausgewählt werden können.


Sprich select * bis auf Feld9,feld10,feld11?

Wenn Du die Felder abfragen willst, (das geht ja über die SYSCOLUMNS), dann kannst Du das etwa so programmieren:

SELECT SYSCOLUMN FROM SYSCOLUMNS where SYSTABLE='MYFILE' and SYSCOLUMN not in ('FELD09', 'FELD10', 'FELD11')

Um daraus noch eine korrekt geschriebene Feldliste zu machen, dürfte aber ein kleine SQL-Prozedur erforderlich sein, welche die Zeichenkette der Feldnamen und jeweils ein Komma dazwischen liefern sollte. Dann könntest Du den ganzen SQL-Befehl zusammensetzen und dynamisch ausführen lassen.

Ich habe so was schonmal programmiert, um dynamisch beliebige Kriterien abfragen zu können, welche Anwender vorab in Tabellen erfassen durften, ohne selber SQL zu können, oder SQL-Abfragen erfassen zu dürfen.

KingofKning
22-10-09, 07:40
Kennst Du überhaupt die Bedienerführung (F4), die es Dir erspart, alle Feldnamen einzutippen ?

Nach F4 für den SELECT-Befehl und nochmal F4 in der Eingabezeile für Felder bekommst Du eine Feldliste, aus der die gewünschten Felder ausgewählt werden können.


Kannte ich wahrhaftig noch nicht.
Danke für die Info

GG