Google
 
Strona główna Darmowe programy, shareware Programowanie MS Excel Porady komputerowe Bazy danych Kontakt

SQL - ciekawe sortowanie danych


Sortowanie losowe


Sortowanie losowe przy wyświetlaniu danych z dowolnej tabeli można uzyskać stosując funkcję newid() . Funkcja ta generuje unikalny w skali globalnej identyfikator na podstawie MAC adresu karty sieciowej i bieżącego czasu. Np. jeśli chcemy dla tabeli o nazwie tabela1 posortować dane według losowej kolejności należy wykonać zapytanie:

SELECT * FROM tabela1 ORDER BY newid()



Umieszczenie konkretnego wiersza na początku lub na końcu zbioru danych


Jeśli chcemy tak posortować zbiór danych aby jeden konkretny wiersz (o konkretnym id) był zawsze na początku (lub na końcu) można wykorzystać funkcję Abs(), która oblicza wartość bezwzględną wyrażenia podanego jako argument. Np. jeśli mamy tabelę tabela1 zawierającą kolumnę id i chcemy aby wiersz o id 10 był wyświetlamy na początku możemy zastosować następujące zapytanie :

SELECT * FROM tabela1 ORDER BY ABS(id-10)

Jeśli chcemy aby wiersz o id 10 był na końcu stosujemy sortowanie w porządku malejącym:

SELECT * FROM tabela1 ORDER BY ABS(id-10) DESC

Podobny efekt można uzyskać stosując zapytanie:

select * , case id when 10 then 1 else 0 end AS kolejnosc from table2 order by kolejnosc desc



 

Copyright © 2006-2010 programowaniePC.pl