Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2006 Ostrzeżenie: (0%)
|
Witam.
Załóżmy, że mamy prościutką tabelę danych przechowującą ludzi, każdy z unikalnym numerem ID. Załóżmy dodatkowo, że tabela ta ma wiele rekordów. Chcemy posortować ją wg dowolnej kolejności - brzmi to dziwnie, ale takie rozwiązanie jest mi potrzebne - np. wg numerów: 6,8,2,9,1,100,200,542,142, a dalej już np. rosnąco. Czy jest na to jakieś bardziej elegancki sposób niż tworzenie ogromnego zapytania z wieloma słówkami UNION? Dla mnie nie jest to problemem wygenerować takowe dynamicznie, ale czy jest prostszy, może mniej obciążający bazę sposób na takowe zapytanie? Ten post edytował MistrzHTML 12.07.2007, 21:31:36 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%)
|
Tak jest elegancki sposób:
Np niech będzie zmienna x będąca funkcją wieku (tu id) i po niej będziemy chcieli sortować:
jak widzisz to zapytanie tworzy sobie nową zmienną w której wartości kolumny id są przewartościowane wg instrukcji case i wg tej zmiennej sortujesz. |
|
|
|
MistrzHTML Sortowanie wg konkretnych wartości 12.07.2007, 21:29:54
MistrzHTML Dobry pomysł, ale zapytanie nie zadziała do końca ... 13.07.2007, 00:42:31
Indeo [SQL] pobierz, plaintext SELECT id,casewhen id=4 t... 13.07.2007, 16:45:18 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 04:12 |