SQL Grundkurs 1: Die Sprache erlernen

Arten der Sortierung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Sortierung kann nicht nur direkt über einen Spaltennamen definiert werden. Auch ein Spaltenalias kann hier ausnahmsweise innerhalb derselben Anweisung weiterverwendet werden. Diese und andere Varianten, um eine Sortierung vorzunehmen, sehen Sie in diesem Video.

Transkript

Sie können die Sortierung des Ergebnisses nicht nur über den Spaltennamen definieren. Welche Varianten es noch gibt, zeige ich Ihnen in diesem Video. Zweifelsohne ist die klassische Variante der Sortierung das Sortierkriterium über einen Spaltennamen anzugeben. Ich habe hier z.B. Datensätze aus der Artikel-Tabelle auszugeben und ich sortiere das Ergebnis nach dem Verkaufspreis, das heißt, über den Spaltennamen VKPreis. Das ist die klassische Variante, in dem Fall wird hier aufsteigend nach dem Verkaufspreis sortiert. Sie können aber auch andere Varianten verwenden, um hier zu sortieren. Eine interessante Variante ist es über den Aliasnamen zu sortieren. Deshalb, weil Sie eigentlich einen Aliasnamen in ANSI SQL ansonsten innerhalb der Anweisung nicht weiter verwenden können, weder zum Beispiel in der SELECT- noch in der WHERE-Klausel. Folgendes Beispiel: Ich ergänze hier eine neue Spalte, in der ich den Verkaufspreis minus den Einkaufspreis errechne und vergebe den Aliasnamen "Spanne". Damit habe ich hier jetzt sozusagen die Handelsspanne berechnet. Nun kann ich innerhalb dieser Anweisung die Spanne ja nicht weiter verwenden. Um das kurz zu zeigen, wenn ich jetzt hier einfach eintippe "Spanne * 2", dann bekomme ich eine Fehlermeldung, dass es diesen Spaltennamen nicht gibt. Der Editor unterstreicht mir auch schon diesen Namen um mir das zu zeigen und "Ungültiger Spaltenname Spanne" ist das Resultat. Also das ist nicht möglich. Auch ist es nicht möglich in der WHERE-Klausel zu sagen, "WHERE Spanne10". Das ist nicht möglich. Auch hier bekommen wir dieselbe Fehlermeldung "Ungültiger Spaltenname". Das ist in ANSI SQL einfach nicht vorgesehen. Stattdessen muss immer der ursprüngliche Ausdruck verwendet werden, das heißt, ich kann z.B. sagen, ich schränke all jene ein bei denen die Differenz des Verkaufs- und Einkaufspreis 10 übersteigt, das ist möglich. (Tippgeräusche) Die große Ausnahme ist die ORDER BY-Klausel. Bei der Sortierung kann ich sehr wohl auf den Aliasnamen zurückgreifen. Das heißt zum Beispiel "ORDER BY Spanne" wird in diesem Fall möglich. Und nun habe ich nach diesem Aliasnamen hier aufsteigend sortiert. Natürlich kann ich auch hier frei definieren, ob das auf- oder absteigend hier der Fall sein soll. Ich entferne hier die WHERE-Klausel damit wir hier mehr sehen und da sehe ich jetzt die Spanne von 457 absteigend bis ganz zum Ende einer Spanne von in dem Fall Null, weil es hier keinen Wert gibt, 0, weil es hier keinen Preis gibt und die niedrigste reale Spanne ist in dem Fall 45 Cent. Aber, natürlich können Sie auch einen Ausdruck verwenden zum Sortieren. Das heißt, in der Praxis wird es wahrscheinlich nicht so häufig vorkommen, denn typischerweise wenn man einen Ausdruck hat, vergibt man für diesen Ausdruck auch einen Aliasnamen und es ist einfacher diesen Aliasnamen für die Sortierung zu verwenden. Aber, Sie können natürlich auch einen Ausdruck hier einbauen, indem Sie sagen, sortiere nach der Differenz zwischen Verkaufs- und Einkaufspreis. Diese Variante wird vor allem dann verwendet, wenn Sie diesen Ausdruck in der SELECT-Klausel nicht verwenden. Ob das häufig der Fall sein mag, sei dahingestellt, weil es stellt sich natürlich die Frage ob es Sinn macht, nach etwas zu sortieren, was man nicht sieht. Aber, es könnte diesen Anlassfall geben, dann können Sie auch nach einem Ausdruck sortieren. Die vierte Variante ist es nach der Position in der SELECT-Klausel zu sortieren. Das ist die Variante für die ganz Tipp- und Schreibfaulen, so wie ich es bin, das heißt, Sie müssen lediglich hier in der ORDER BY-Klausel hinschreiben, z.B."ORDER BY 2". 2 wäre die zweite Position in der SELECT-Klausel in dem Fall 1.2 die Bezeichnung, und Sie würden nach der Bezeichnung hier sortieren. In dem Fall wieder aufsteigend. Ich möchte allerdings zur letzten Variante ergänzen, dass genauer genommen diese Variante mittlerweile nicht mehr ANSI konform ist und aus dem Standard hinausgefallen ist. Der Grund liegt darin, dass sie bei komplexen Anweisungen sehr fehleranfällig ist, da es bei nachträglichen Änderungen und Verschiebungen der SELECT-Klausel zu Fehlern oder Änderungen beim Sortieren kommen kann, das kann man leicht übersehen. Sie funktioniert zwar noch in allen Produkten dieser Variante, aber sie ist eigentlich nicht mehr ANSI konform und man kann nicht sagen, ob sie auch in zukünftigen Versionen noch weiterhin unterstützt werden wird. Generell, haben Sie die Möglichkeiten das Sortierkriterium also entweder über den Spaltennamen, über einen Aliasnamen, über einen Ausdruck oder eben über die Position in der SELECT-Klausel zu definieren.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!