Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Spaltennamen per SELECT-Statement festlegen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Neokil, 8 April 2013.

  1. Neokil

    Neokil Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Vermutlich (nur) mittels dynamischen SQL.

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


    Andreas
     
  3. Neokil

    Neokil Benutzer

    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.
     
  4. Neokil

    Neokil Benutzer

    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?
     
  5. ukulele

    ukulele Datenbank-Guru

    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.
     
  6. crashfinger

    crashfinger Benutzer

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden