Unter Verwendung von distinct auf eine Spalte und tun, um auf eine andere Spalte gibt einen Fehler

Ich habe eine Tabelle:
abc_test mit Spalten n_num, k_str.

Diese Abfrage funktioniert nicht:

    select distinct(n_num) from abc_test order by(k_str)

Aber dieses funktioniert:

    select n_num from abc_test order by(k_str)

Wie DISTINCT und ORDER BY keywords intern, Ausgabe von sowohl der Abfragen geändert wird?

  • Könnten Sie zeigen die Ergebnisse auf, wenn Sie diese zwei Abfragen? Die erste Abfrage gibt einen Fehler zurück ORA-01791: not a SELECTed expression als k_str Spalte ist nicht aktiviert. Ist das die tatsächliche Abfrage, die Sie lief? (Kann es akzeptabel sein, 9i, aber ich kann nicht sicher sein.)
  • Gleiche Wirkung auf den SQL Server, aber mit einer aussagekräftigeren Fehlermeldung "ORDER BY-Elemente müssen in der Auswahlliste angezeigt werden, wenn SELECT DISTINCT angegeben wird."
Schreibe einen Kommentar