SQL: Mitarbeiter mit größten und kleinsten Gehalt ausgeben. Wie "min" und "max" dranhängen?
Hallo Leute,
ich komme leider bei einer ziemlich kniffligen (naja für mich wenigstens...) SQL Anweisung nicht weiter. In SQL Plus soll ich den Mitarbeiter mit dem höchsten, und den Mitarbeiter mit dem kleinsten Gehalt ausgeben. Soweit habe ich das auch getan:
SQL> SELECT ename, sal FROM emp WHERE sal = (SELECT Min(sal) FROM emp) OR sal = (SELECT Max(sal) FROM emp);
Sieht dann wie folgt aus (siehe Bild 1)
Nun fehlt allerdings eine Bezeichnung wie "min" oder "max" die rechts neben den jeweiligen Zahlen stehen soll, doch leider grübele ich mir mein Kopf kaputt und finde auch nirgendwo Tipps wie man sowas lösen kann.
Ich hoffe es findet sich jemand mit guten SQL Kenntnissen, der mir helfen kann.
Mfg Chaosboy

4 Antworten
Es gibt verschiedene Ansätze. Ein einfacher wäre folgender:
SELECT ename, sal, 'min'
FROM emp
WHERE sal = (SELECT Min(sal) FROM emp)
UNION ALL
SELECT ename, sal, 'max'
FROM emp
WHERE sal = (SELECT Max(sal) FROM emp)
.
aber zu deiner frage
CONCAT ist das jeweilige was du suchst
aber der query passt dann so nicht , weil sal = komisch ist
ups jetzt merk ich erst was du eigentlich willst, du willst je nach dem was bei OR gewählt wird einen zusatz bei der ausgabe .
guck mal ob dir sowas hilft
du kannst auch mit order by desc limit 1 und order by asc limit 1 arbeiten . dann hättest du nämlich den datensatz undnicht nur den maximal bzw minimal wert .
Genau! Und wenn der Datensatz zusätzlich geliefert werden soll, kann man beide Ergebnismengen mit UNION verbinden.