Krauter-Datenbanksystem
... das immerhin zu Oracle gehört und in dessen Datenbankengine SAP einiges gewiss nicht uneigennützig eingebracht hat. Welches dieser beiden Unternehmen möchtest Du als "Krauter" bezeichnen?
SELECT zahl, ABS( zahl ) AS reihe
FROM zahlen
ORDER BY reihe DESC
LIMIT 1
würde mit dem angegebenen Beispiel [1,0,-10] die 10 als absoluten Betrag bringen
SELECT `zahl`, ABS( `zahl` ) AS `reihe`
FROM `zahlen`
ORDER BY `reihe` DESC
LIMIT 1
Bringt das, was der Frager wohl erwartet.
zahl reihe
-10 10
WICHTIGE Hinweise:
1. Voraussetzung ist, dass die Tabelle auch Zahlen und keinen Text enthält. Das NULL enthalten sein können soll erweckt bei einen ganz argen Verdacht.
2. Es muss bei jeder Abfrage die gesamte Tabelle durchgerechnet und das Ergebnis sortiert werden - hier sollte schon beim Eintragen der Werte die Berechnung durchgeführt werden damit auch die Spalte 'reihe' indexiert werden kann. Sonst dauert das Abfragen möglicherweise sehr lang.
Mit
1. ALTER TABLE
zahlenADD
reiheDECIMAL( 10.4 ) NOT NULL
2. ALTER TABLE
zahlenADD INDEX (
reihe )
3. UPDATE
zahlenSET
reihe=ABS(
zahl )
kann man das auch nachträglich machen.
Dann muss man nur ein
SELECT `zahl`
FROM `zahlen`
ORDER BY `reihe` DESC
LIMIT 1
abfragen um das wohl erwünschte Ergebnis -10 zu erhalten.