SQL-Listing-alle Spaltennamen alphabetisch
Ich weiß, dass
SELECT * FROM Table
wird die Liste der Spalten in der Tabelle, aber ich bin interessiert in die Auflistung der Spalten in alphabetischer Reihenfolge.
Sagen, ich habe drei Spalten, "name", "Alter" und "Geschlecht".
Möchte ich die Spalten organisiert, die in das format
|age| |name| |sex|
Ist es möglich, dies zu tun mit SQL?
InformationsquelleAutor der Frage Shamim Hafiz | 2010-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja und Nein 🙂
SQL selbst kümmert sich nicht, was die Reihenfolge der Spalten kommen aber, wenn Sie verwendet wurden:
würden Sie finden, dass Sie kam wohl in Ordnung (obwohl ich nicht sicher bin, ob die SQL-standards Mandat).
Jetzt nicht wollen zu tun, aber manchmal das Leben ist nicht fair 🙂
Haben Sie auch die Möglichkeit der Verwendung der DBMS Datendefinition-Tabellen dynamisch erstellen einer Abfrage. Dies ist nicht tragbar, aber die meisten DBMS' liefern diese Tabelle (z.B. DB/2
SYSIBM.SYSCOLUMNS
) und Sie können wählen Sie die Spalte, die die Namen von dort in geordneter Art und Weise. So etwas wie:Dann verwenden Sie die Ergebnisse der dass Abfrage zu konstruieren, die real-Abfrage:
Aber Sie sollten wirklich kritisch zu prüfen, alle Abfragen, wählen Sie
*
- in der überwiegenden Mehrzahl der Fälle, es ist unnötig und ineffizient. Und Präsentation der Daten ist etwas, das sollte wohl getan werden, von der Präsentations-Schicht, nicht das DBMS selbst - dem DBMS überlassen werden sollten, um die Daten zurück, die so effizient wie möglich.InformationsquelleAutor der Antwort paxdiablo
Dieser erzeugt eine Abfrage mit allen Spalten alphabetisch geordnet, in der select-Anweisung.
InformationsquelleAutor der Antwort Maykol Rypka
SELECT *
wird nicht empfohlen und wird nicht Sortieren SpaltennamenSELECT age, name, sex FROM
Auf SQL-Ebene, es spielt keine Rolle. Nicht egal ist es, alle client-code Objekt-
Ob Sie wichtig sind, dann Sortieren, wenn Sie die Daten an den client.
Sorry, es ist einfach so...
InformationsquelleAutor der Antwort gbn
SQL-92-Standard gibt an, dass bei der Verwendung von
SELECT *
auf die Spalten verwiesen wird in der aufsteigenden Reihenfolge Ihrer Ordnungszahl in der Tabelle. Die relevanten Abschnitte 4.8 (Spalten) und 7.9 (query-Spezifikation). Ich kenne keine Hersteller-Erweiterungen zum Standard erlauben würde, dass die Spalten zurückgegeben werden, in anderer Reihenfolge, wahrscheinlich weil die VerwendungSELECT *
wird allgemein abgeraten.Können Sie SQL-DDL, um sicherzustellen, dass die Spalten' Positionen mit den gewünschten alphabetischer Reihenfolge. Allerdings funktioniert das nur in der Weise, die Sie wollen, wenn referening ein sinlge-Tabelle in der
FROM
- Klausel. Wenn zwei Tabellen verwiesen wird, wirdSELECT *
zurückkehren wird, um die Spalten aus der ersten Tabelle in die position um, gefolgt von der zweiten Tabelle werden die Spalten in der Ordnungszahl, also die komplette resultset-Spalten können nicht in alphabetischer Reihenfolge.InformationsquelleAutor der Antwort onedaywhen
Sie können nur die Spalten angeben, die Sie auswählen möchten:
Spalten angezeigt werden in der gleichen Reihenfolge, wie Sie angegeben haben, Ihnen in der Abfrage.
InformationsquelleAutor der Antwort Kel
Ja. Es ist möglich mit dem folgenden Befehl.
Sie zeigt alle Spalten der Tabelle in alphabetischer Reihenfolge.
InformationsquelleAutor der Antwort Pamuleti Pullagura