SQL-Server/Access - Order BY 1,2?
Kam ich über eine Abfrage heute,
SELECT col1,'yes' as col2 FROM myTable
WHERE col2=TRUE
UNION
SELECT col1,'no' as col2 FROM mytable
WHERE col2=FALSE
ORDER BY 1,2
Dachte ich, es würde um, indem Sie zuerst die Spalte und dann die zweite aber seit einem UNION beteiligt ist, bin ich ein bisschen unsicher, kann jemand erklären die genaue Bedeutung dieser Abfrage
Meinst du, gehören der Zugang für einen Grund? Die RDBMS sind Sie bei Ausführung der Abfrage?
Naja, abgesehen von deiner Frage, habe ich eines meiner eigenen, warum machst du es so? Sicherlich ein
Generell ist die Abfrage, die Sie vorschlagen, ist nicht ganz äquivalent zu der OP. Wenn
Vereinbart wurde, die ich aber nicht als NULL ist, das müsste berücksichtigt werden, die in eine solche Lösung.
Naja, abgesehen von deiner Frage, habe ich eines meiner eigenen, warum machst du es so? Sicherlich ein
SELECT col1, CASE WHEN col2 = TRUE THEN 'yes' ELSE 'no' END as col2 FROM mytable ORDER BY 1, 2
wäre vorzuziehen, nicht?Generell ist die Abfrage, die Sie vorschlagen, ist nicht ganz äquivalent zu der OP. Wenn
col2
null-Werte zulässt und nicht enthalten, Null-Werte, die zwei Abfragen, Ihre und OP ist, würden unterschiedliche Ergebnisse zurückgeben. Aber im Grunde haben Sie einen ausgezeichneten Punkt, natürlich.Vereinbart wurde, die ich aber nicht als NULL ist, das müsste berücksichtigt werden, die in eine solche Lösung.
InformationsquelleAutor Sujit Prabhakaran | 2011-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
SQL Server werden in der union die Ergebnisse zusammen (das ist eine implizite select distinct) und dann, um die Ergebnisse von col1 dann col2. In einer union-Abfrage kannst du ein ORDER BY auf die endgültige wählen Sie, welche Art das endgültige Ergebnis.
InformationsquelleAutor Steven Mastandrea