Weiß nicht, ob ich die recht verstehe, meinst Du sowas in der Art?
SQL-Code:
CREATE TABLE DUAL (DUMMY VARCHAR(1));
insert into dual (dummy) values ('X');
select 'Wie Bitte?' as Frage, 42 as Antwort from dual;
(Ja, ist etwas blöde das Beispiel
)
Wenn ich Dich recht verstehe, möchtest Du doch wissen, wie Du Spalten in ein Abfrageergebnis bekommst, die nicht existieren.
Das geht eigentlich grundsätzlich in der Form:
select 'irgendein konstanter Wert' as Spaltenname from Tabelle
. Für jede Zeile der Tabelle bekommst Du nun in der Spalte "Spaltenname" die Zeichenfolge "irgendein konstanter Wert" ausgegeben.
select 1 as Spaltenname from Tabelle
geht natürlich auch. Im Programm kannst Du auf solche Spalten dann mit
FieldByName('Spaltenname').AsString
oder
FieldByName('Spaltenname').AsInteger
, je nach dem von Dir im Select vorgegebenen Datentyp, zugreifen.
SQL-Code:
select
existierendes_Feld_1,
existierendes_Feld_2,
existierendes_Feld_3,
'ein Text' as nicht_existierende_Zeichenfolge_1,
1 as nicht_existierende_Zahl_1
from Tabelle
where existierendes_Feld_1 = 'irgend ein Wert, für existierendes_Feld_1'
Das finde ich das Schöne bei Oracle: Mit Hilfe der Tabelle Dual kann man alles Mögliche und Unmögliche aus der Datenbank bekommen, ohne dass man dazu eine passende Tabelle mit entsprechenden Daten haben muss.
Kann man in anderen Datenbanken (sofern sie kein entsprechendes "Gegenstück" haben), leicht nachbauen.