Heim >Datenbank >MySQL-Tutorial >Wie kann ein CASE-Ausdruck SQL-Ergebnisse nach bestimmten Werten ordnen?
Verwenden Sie CASE-Ausdrücke, um SQL-Ergebnisse nach bestimmten Werten zu sortieren
Beim Abrufen von Daten aus einer Tabelle müssen Sie die Ergebnisse häufig nach mehreren Werten in einer bestimmten Reihenfolge sortieren. In diesem Fall besteht die Aufgabe darin, Datensätze aus einer Tabelle basierend auf angegebenen Schlüsseln und nicht indizierten Feldern zu extrahieren und die Ergebnisse nach mehreren Werten in einer bestimmten Reihenfolge zu sortieren.
Um diese Anforderung zu erfüllen, kann anstelle der herkömmlichen ORDER BY-Syntax ein CASE-Ausdruck verwendet werden, um die gewünschte Reihenfolge zu erreichen. Die Syntax des CASE-Ausdrucks lautet wie folgt:
<code class="language-sql">CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE valueN END</code>
In diesem Beispiel wird der CASE-Ausdruck verwendet, um jedem Wert in x_field eine bestimmte Reihenfolge zuzuweisen. Beispielsweise werden den Werten „f“, „p“, „i“ und „a“ die Sequenznummern 1, 2, 3 bzw. 4 zugewiesen. Allen anderen Werten, die nicht mit diesen spezifischen Werten übereinstimmen, wird die Standardsequenznummer 5 zugewiesen.
Hier ist ein Beispiel, wie ein CASE-Ausdruck zu einer SQL-Abfrage hinzugefügt werden kann:
<code class="language-sql">SELECT * FROM table WHERE x_field IN ('f', 'p', 'i', 'a') ORDER BY CASE x_field WHEN 'f' THEN 1 WHEN 'p' THEN 2 WHEN 'i' THEN 3 WHEN 'a' THEN 4 ELSE 5 -- 对不在IN子句中的值(例如:x_field = 'b')的回退值 END, id</code>
Durch die Verwendung eines CASE-Ausdrucks werden die Ergebnisse entsprechend der zugewiesenen Sequenznummer sortiert, wodurch die Werte „f“, „p“, „i“ und „a“ effektiv in der angegebenen Reihenfolge sortiert werden.
Das obige ist der detaillierte Inhalt vonWie kann ein CASE-Ausdruck SQL-Ergebnisse nach bestimmten Werten ordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!