View soll Liste zurückgeben

Tossi65

Benutzer
Beiträge
6
Guten Tag,
gibt es eine Möglichkeit, das eine View kein Resultset, sondern eine Liste in Form Feld = Value zurück gibt?

Vielen Dank Tossi65
 
Werbung:
Hallo,

da heute Freitag ist und fast Mittag ist meine Vorstellungskraft quasi nicht mehr wirklich vorhanden und es wäre toll wenn du schemenhaft darstellen könntest was gewünscht ist, wie der IST-Zustand aussieht und vllt. 2-3 klitze kleine Infos mehr...

Danke und Grüße
 
Hallo Chuky666,
im Normalfall möchte ich ein Ergebnis (Spaltename = Wert) als Liste zurück bekommen. Diese Liste wird von einem anderen Programm verwendet.
Die View gibt mir immer eine Tabellenansicht zurück. Außerdem muss ich die View immer anpassen, wenn eine Spalte hinzukommt. Bei der Liste ist das egal, einfach ein Eintrag mehr.
Also konkret würde ich gerne eine StoredProcedure bauen, die mir eine Liste wie beschrieben zurüch gibt. Eine weitere Frage hat sich gerade aufgetan: Wie komme ich an den Spaltenname in SQL heran???
 
Code:
test=# create  table tossi(key text, value text);
CREATE TABLE
test=*# insert into tossi values ('Key1','Val1');
INSERT 0 1
test=*# insert into tossi values ('Key2','Val2');
INSERT 0 1
test=*# insert into tossi values ('Key3','Val3');
INSERT 0 1
test=*# select * from tossi ;
 key  | value
------+-------
 Key1 | Val1
 Key2 | Val2
 Key3 | Val3
(3 rows)

test=*# select key, value from tossi ;
 key  | value
------+-------
 Key1 | Val1
 Key2 | Val2
 Key3 | Val3
(3 rows)

test=*# select (key, value) from tossi ;
  row   
-------------
 (Key1,Val1)
 (Key2,Val2)
 (Key3,Val3)
(3 rows)

test=*# select key || '=' || value from tossi;
 ?column?  
-----------
 Key1=Val1
 Key2=Val2
 Key3=Val3
(3 rows)

test=*# select '(' || key || '=' || value || ')' from tossi;
  ?column?   
-------------
 (Key1=Val1)
 (Key2=Val2)
 (Key3=Val3)
(3 rows)

test=*#
 
Werbung:
Code:
SELECT   sysobjects.[name] + '.'  + syscolumns.[name] AS spalte,
     systypes.name AS datatype,
     syscolumns.[length] AS [length]
FROM   sysobjects
INNER JOIN syscolumns
ON     sysobjects.[id] = syscolumns.[id]
INNER JOIN systypes
ON     syscolumns.xtype = systypes.xtype
WHERE   sysobjects.[xtype]='U'
Damit kommst du an alle Tabellen / Spaltennamen etc. ran und dann gibt es natürlich mehrere Möglichkeiten das zu nutzen um dein Select dynamisch zu machen. Das ist aber schon einiges an arbeit, einfacher ist es erstmal die Spalten in den Select einzusetzen und dann zu verketten. Man kann ja auch den Spaltennamen dann fix einsetzen.

Wäre vielleicht auch mit XML sinnvoll machbar, du müsstest uns aber veraten was du mit den Daten danach vor hast.
 
Zurück
Oben