Spaltennamen per SELECT-Statement festlegen

Neokil

Benutzer
Beiträge
6
Hallo,

ich möchte, dass der Spaltennamen meiner Abfrage nicht konstant ist, sondern möchte ihn per SELECT-Anweisung aus der Datenbank auslesen. Geht das?
Also nach dem Schema:
Code:
SELECT Werte1 as Max(SELECT Name FROM TBL1)
FROM ...

Geht so was überhaupt?

Gruß
Neokil
 
Werbung:
Hallo,

ich möchte, dass der Spaltennamen meiner Abfrage nicht konstant ist, sondern möchte ihn per SELECT-Anweisung aus der Datenbank auslesen. Geht das?
Also nach dem Schema:
Code:
SELECT Werte1 as Max(SELECT Name FROM TBL1)
FROM ...

Geht so was überhaupt?

Gruß
Neokil


Vermutlich (nur) mittels dynamischen SQL.

Darf man fragen, für was man sowas braucht?


Andreas
 
Es geht darum, dass per Skript immer die Daten von drei Monaten ausgegeben werden sollen und jede Spalte einen Monat darstellt. Bisher heißen die Spalten halt Monat1, Monat2 und Monat3 und ich möchte, dass sie z.B. Januar, Februar, März heißen.
Der Monat ist als Zahl in der Datenbank und ich habe auch eine Abfrage, mit der ich den Monatsnamen zurückbekomme. Wenn die Spaltennamen schon passen würden, müssten sie nicht manuell in der Excel-Tabelle angepasst werden.
 
also ich habe jetzt mal geschaut und so wie ich das verstanden habe speichert man bei dynamischem SQL den SQL-Befehl in einer Variable und führt ihn dann per "EXEC sp_executesql @Variable" aus.
Jetzt habe ich allerdings das Problem, dass mein SQL-Befehl aus ~6000 Zeichen besteht und EXEC die Datentypen text und ntext nicht akzeptiert und char, nvarchar usw.. eine Beschränkung auf 4000 Zeichen haben. Ideen?
 
Also zunächst mal hört sich das ziemlich verkorkst an, sowohl das Datenmodell als auch die massive Abfrage.

Wege gibt es natürlich viele, der einfachste ist vieleicht die eigentliche Abfrage in eine Sicht zu bringen und später nur die Spaltennamen zu behandeln, das ganze also in mehrere Teile zu zerlegen.
 
Werbung:
Ich muss Ukulele recht geben, deiner Beschreibung nach wäre es sinnvoller die Monate von Spaltenwerten in einzelne Recordsets zu wandeln.

Vielleicht wäre eine Tabellenwert-Funktion auch eine gute Lösung. Hier könntest du die jeweiligen gewünschten Monate/Spalten als Parameter übergeben.

Eine genauere beschreibung deines Datenmodells wäre hilfreich für weitere Hinweise unsererseits.
 
Zurück
Oben