werbeklaus: SQL: Abfrage zum nächsttieferen Wert

Beitrag lesen

Hallo,

SELECT * FROM myTable WHERE Value < 23 ORDER BY Value LIMIT 1;

Aber das ist doch nicht eindeutig, oder? SQL könnte dann doch auch den Datensatz 0 mit Value 10 zurückliefern?

Doch, denn:

  • Mit der Where-Klausel hast du das Ergebnis auf Zeilen mit Value < 23 begrenzt
  • Das weitere Ergebnis mit der Order-By-Klausel nach einem sinkenden Value-Wert (drum musst du ORDER BY Value DESC) schreiben sortiert ....
  • Und mit LIMIT 1 auf einen Eintrag limitiert.

So bekommst du EINEN Eintrag von denen, die KLEINER als 23 sind und von denen den GRÖßTEN.
Das wäre doch alles, oder?

werbeklaus