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

select in mehrere Spalten

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von jangbu, 8 Mai 2017.

  1. jangbu

    jangbu Benutzer

    Hallo,

    kann mir jemand sagen ob folgende Darstellung eines select geht:

    in einen DB-Feld "Typ" können max drei statische Informationen stehen [A,B,C]. Ich hätte gern das der select die drei möglichen Varianten in drei separaten output-Spalten darstellt, also ein DB-Feld in drei separte Spalten.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    suchst Du sowas?

    Code:
    test=*# select * from jangbu ;
     typ
    -----
     a
     a
     b
     c
     c
     a
     b
     b
     a
     c
     c
     c
    (12 Zeilen)
    
    test=*# select count(1) filter (where typ = 'a') as a, count(1) filter (where typ = 'b') as b, count(1) filter (where typ = 'c') as c from jangbu ;
     a | b | c
    ---+---+---
     4 | 3 | 5
    (1 Zeile)
    
    test=*#
    
    Hint: FILTER (...) können nur sehr wenige Datenbanken, falls Deine das nicht kann, dann mit case when ... arbeiten.
     
    Walter gefällt das.
  3. akretschmer

    akretschmer Datenbank-Guru

    Falls FILTER nicht unterstützt wird:

    Code:
    test=*# select sum(case when typ='a' then 1 else 0 end) as a, sum(case when typ='b' then 1 else 0 end) as b, sum(case when typ='c' then 1 else 0 end) as c from jangbu ;
    a | b | c
    ---+---+---
    4 | 3 | 5
    (1 Zeile)
    
    *typo fixed*
     
  4. jangbu

    jangbu Benutzer

    Danke! Probiers heute abend aus.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Und? Hat es funktioniert?
     
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