Frage von Chaosboy, 145

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

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Unsinkable2, 132

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)

.

Antwort
von RakonDark, 117

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 .

Kommentar von Suboptimierer ,

Genau! Und wenn der Datensatz zusätzlich geliefert werden soll, kann man beide Ergebnismengen mit UNION verbinden.

Antwort
von RakonDark, 95

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 .


Antwort
von RakonDark, 72

aber zu deiner frage

CONCAT ist das jeweilige was du suchst

aber der query passt dann so nicht , weil sal = komisch ist


Keine passende Antwort gefunden?

Fragen Sie die Community