sql -> distinct -> sorotowanie

0

hej, przy poleceniu distinct dane wynikowe sa sortowane, czy mozna to zmienic tak, aby pojawialy sie w tej samej kolejnosci, co w tabeli ??

0

Witam

Polecenie DISTINCT służy do eliminacji powtórzeń, w razie gdyby takowe nastąpiły podczas zwrócenia wierszy spełniających dane zapytanie SELECT.

Jeśli chodzi o sortowanie to:

ORDER BY [kolumna] ASC ---> rosnąco
ORDER BY [kolumna] DESC ---> malejąco

np.

SELECT DISTINCT [kolumny]
FROM [nazwa tabeli]
WHERE[warunki wyszukania]
ORDER BY [kolumna] ASC

Mam nadzieję, że o to Ci chodziło, bo średnio zrozumiałem posta ;-P

Pozdrawiam

0

byc moze, niezbyt dokladnie sie wyrazilem :-)
jezeli jest

kasia
ania
kasia
franek

to wynikiem, po distinct, bedzie

ania
kasia
franek

a chcialbym, aby dane wynikowe, byly w tej samej kolejnosci, co pierwsze
wystapienie danego slowa, czyli

kasia
ania
franek :>

0
gdk napisał(a)

a chcialbym, aby dane wynikowe, byly w tej samej kolejnosci, co pierwsze
wystapienie danego slowa, czyli

kasia
ania
franek :>

Kolumna z imionami z pewnością posiada swój ID, więc domyślnie posortowane będą według tegoz ID, jeżeli otrzymujesz inny wynik to posortuj według tego ID

ORDER BY [Kolumna ID] ASC

Jeżeli nie posiadasz ID to obawiam się, że inaczej Ci tego nie posortuje. Musisz wtedy dołożyć go sobie.

Pozdrawiam ;-)

0

dzieki za odpowiedz, ale chyba nie da sie polaczyc funkcji distinct z order by, bo ta pierwsza jest funkcja grupujaca, a druga odnosi sie do kolumny z wartosciami nie powtarzjacymi sie :>
pozdrawiam

0

chyba nie da sie polaczyc funkcji distinct z order by, bo ta pierwsza jest funkcja grupujaca, a druga odnosi sie do kolumny z wartosciami nie powtarzjacymi sie

Nie ma problemu z połączeniem tych klauzul, nie wykluczają się one wcele wzajemnie. A jeśli chodzi o grupowanie to musisz uzyć klauzuli GROUP BY. Poniżej zamieszczam Ci przykład ze standardowej bazy Northwind w MS SQL:

select distinct categoryid, productname, unitprice, count(*) from products
group by categoryid, productname, unitprice /* wszystkie użyte w Select */
order by 1 desc /* malejąco */

Mam nadzieję, że to rozwiąże już Twoje problemy

Pozdrawiam :-)

0

teraz powinno juz byc dobrze,
pozdrawiam ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1