# Tabellen Zeilen combinen und splitten



## Kirby.exe (28. Jan 2021)

Also ich habe die folgende Aufgabe:



Die Teilaufgabe habe ich meines erachtens nach gelöst, aber hier ist die Reihenfolge nicht so ganz richtig...xD

Hier ist die Ausgabe:


Hier ist der Code:


```
select student, 'H' as ATYP, h as prozent from resultate_1
union
select student, 'Z' as ATYP, z as prozent from resultate_1
union
select student, 'E' as ATYP, e as prozent from resultate_1
Order By student DESC
```

Zu Teilaufgabe b habe ich mir schon ein wenig den Kopf zerbrochen, aber ich komme nicht auf etwas sinnvolles...Ich habe zwar StackOverflow Posts gesehen wo die mit irgendwelchen Array Funktionen arbeiten, aber wir dürfen diese vermutlich nicht nutzen...xD


----------



## LimDul (28. Jan 2021)

Beim ersten - das Order BY noch um ein weiteres Kriterium erweitern. Bei Oracle könnte man da DECODE nehmen um die Werte H,Z und E auf Zahlen zu mappen und dann zu sortieren. Was im SQL Standard da gibt oder ihr verwenden könnt - keine Ahnung.

Für b)

3 SubSelect:

SELECT * FROM tabelle2 WHERE ATYP='H' AS SubH, 
SELECT * FROM tabelle2 WHERE ATYP='E' AS SubE,
SELECT * FROM tabelle2 WHERE ATYP='Z' AS SubZ

Die dann über die Spalte Student joinen und die passenden Spalten mit den Namen selektiern - also SubH.PROZENT als H usw.


----------



## Kirby.exe (28. Jan 2021)

LimDul hat gesagt.:


> Beim ersten - das Order BY noch um ein weiteres Kriterium erweitern. Bei Oracle könnte man da DECODE nehmen um die Werte H,Z und E auf Zahlen zu mappen und dann zu sortieren. Was im SQL Standard da gibt oder ihr verwenden könnt - keine Ahnung.
> 
> Für b)
> 
> ...


Danke  Es klappt


----------



## Oneixee5 (28. Jan 2021)

LimDul hat gesagt.:


> Bei Oracle könnte man da DECODE nehmen


Bei Oracle könnte man PIVOT und UNPIVOT nehmen.


----------

