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

Union all -> Felder untereinander anzeigen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von ny_unity, 24 Oktober 2013.

  1. ny_unity

    ny_unity Datenbank-Guru

    Hallo Leute,

    ich habe einen View, der ist wie folgt aufgebaut:
    Select MANR, Nachname, Vorname, .... from Tables
    also Ergebnis:
    MANR - Nachname - Vorname
    1 - Mustermann - Max

    Nun möchte ich aber das es wie folgt aussieht:
    MANR: 1
    Nachname: Mustermann
    Vorname: Max

    Könnt ihr mir helfen? Ich find nicht wirklich den Ansatz, Union all kommt immer das der Name varchar nicht in int umgewandelt werden kann...

    Vielen Dank

    Erik
     
  2. akretschmer

    akretschmer Datenbank-Guru


    PHP:
    test=*> select from ny;
    id name  |  vorname
    ----+-------+------------
      
    max  mustermann
      2 
    susi  sorglos
      3 
    willi lustig
    (3 rows)

    test=*> select keyval from (select idas col'Nummer' as keyid::text as val from ny union all select idas col'Name' as keyname  as val from ny union all select id3'Vorname'vorname from nyfoo order by idcol;
      
    key  |    val
    ---------+------------
    Nummer  1
    Name    
    max
    Vorname 
    mustermann
    Nummer  
    2
    Name    
    susi
    Vorname 
    sorglos
    Nummer  
    3
    Name    
    willi
    Vorname 
    lustig
    (9 rows)
     
    ny_unity gefällt das.
  3. ny_unity

    ny_unity Datenbank-Guru

    danke für dein code... das klappt soweit alles, bis aufs sortieren ;/
    ich arbeite ja mit create view, dort ist das sortieren nicht erlaubt :( nur mit Hilfe von TOP...
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Für die Limitierungen in anderen Systemen kann ich aber nix...

    Code:
    test=*> create view mein_super_duper_view as select key, val from (select id, 1 as col, 'Nummer' as key, id::text as val from ny union all select id, 2 as col, 'Name' as key, name  as val from ny union all select id, 3, 'Vorname', vorname from ny) foo order by id, col;
    CREATE VIEW
    test=*> select * from mein_super_duper_view ;
      key  |  val
    ---------+------------
     Nummer  | 1
     Name  | max
     Vorname | mustermann
     Nummer  | 2
     Name  | susi
     Vorname | sorglos
     Nummer  | 3
     Name  | willi
     Vorname | lustig
    (9 rows)
    
    
    In PG gehts es auch als VIEW, in 9.3 auch als mat. View:

    Code:
    test=*> create materialized view mein_super_duper_materialized_view as select key, val from (select id, 1 as col, 'Nummer' as key, id::text as val from ny union all select id, 2 as col, 'Name' as key, name  as val from ny union all select id, 3, 'Vorname', vorname from ny) foo order by id, col;
    SELECT 9
    
     
  5. ukulele

    ukulele Datenbank-Guru

    In MSSQL sind Sortierungen in Views nicht erlaubt weil für MS "sinnfrei". Eine Tabelle wird ja auch nicht sortiert erstellt. Die Sortierung erfolgt immer erst bei Ausgabe also in diesem Fall beim Select auf die View.

    Ich denke es ist keine technische sondern eine "logische" Einschränkung durch MS. Genauso wie man im GROUP BY alle nicht aggregierten Spalten anzugeben hat, ausser in MySQL :)
     
  6. ny_unity

    ny_unity Datenbank-Guru

    Habe die Woche urlaub, poste meine Lösung nächste Woche :)
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Wasn das für 'ne Einstellung? ;-)
     
  8. ny_unity

    ny_unity Datenbank-Guru

    Ein jeder braucht mal n freien Tag :)
     
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