To podejście jest dostępne w SQL Server 2000, można wybrać różne wartości z tabeli i kolejności według różnych kolumn, które nie jest zawarte w Distinct. Ale w SQL 2012 będzie to przez ciebie błąd "ORDER BY elementy muszą pojawić się na liście select, jeśli określono DISTINCT SELECT."
Tak więc, jeśli chcesz użyć tej samej funkcji co w SQL 2000, możesz użyć numeru kolumny do zamawiania (nie jest to zalecane w najlepszej praktyce).
select distinct(n_num) from abc_test order by 1
Spowoduje to zamówienie pierwszej kolumny po pobraniu wyniku. Jeśli chcesz, aby zamawianie zostało wykonane na podstawie innej kolumny niż wyróżniona, musisz dodać tę kolumnę również w instrukcji select i użyć numeru kolumny do zamówienia przez.
select distinct(n_num), k_str from abc_test order by 2
można pokazać wyniki, jeśli uruchomić te dwa pytania? Pierwsze zapytanie powinno zwrócić błąd 'ORA-01791: nie wyselekcjonowane wyrażenie', ponieważ kolumna 'k_str' nie jest wybrana. Czy to jest rzeczywiste zapytanie, które uruchomiłeś? (Może to być dopuszczalne w 9i, ale nie mogę być tego pewien.) –
Ten sam efekt na serwerze SQL, ale z bardziej opisowym komunikatem o błędzie, "ORDER BY elementy muszą pojawić się na liście wyboru, jeśli określono DISTINCT SELECT." – onedaywhen