![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка в Interbase [D5, IB5.x]
Uran © (2004-11-03 12:56:00)Есть таблица Interbase, по полю Field нужно организовать сортировку по следующему условию:
Сначала выводятся строки с пустыми значениями, затем значени, содержащие в первой позиции символ «#» , затем "*", "-" и вконце все остальные.
Union не помагает . Подскажите что тут можно придумать.
Заранее благодарен.
Uran (2004-11-03 13:24:00) [1]заработал ... действительно тормозил я .. каюсь! :)
Uran (2004-11-03 13:21:00) [2]//Наталия
я описал свою выборку с union не работает .. ты утверждаешь обратное ...
если не трудно , скажи где я ошибаюсь
Johnmen (2004-11-03 13:18:00) [3]>Uran
"Не тормози, сникерсни" (c)
Наталия (2004-11-03 13:18:00) [4]Uran (03.11.04 13:16) [13]
а читать ты вообще умеешь? :))
}|{yk (2004-11-03 13:17:00) [5]Хотя у тебя IB 5.x, там исходников нет...
Наталия (2004-11-03 13:17:00) [6]Reindeer Moss Eater © (03.11.04 13:14) [9]
Если UNION - то будет, а если UNION ALL - то не будет :))
Наталия (2004-11-03 13:16:00) [7]Uran, ты используй не UNION, а UNION ALL - тебе же еще во [2] про это сказали...
Uran (2004-11-03 13:16:00) [8]ничего не понял ... думал ... получится .... не получится ..
по сути кто нибудь может чего нибудь посоветовать!?
}|{yk (2004-11-03 13:16:00) [9]Посмотри в исходниках, как сделано например WIN1251_UA - его добавили, чтобы украинские буквы І, Є,Ї шли в алфавитном порядке при сортировке.
Johnmen (2004-11-03 13:16:00) [10]>Reindeer Moss Eater © (03.11.04 13:14) [9]
UNION - автоматом сортирует результат.
UNION ALL - в порядке селектов.
Не будет.
Reindeer Moss Eater (2004-11-03 13:14:00) [11]Я когда-то давно тоже думал, что в результате UNION без ORDER BY получается "этажерка" наборов данных получаемых отдельными его частями.
Прямо в том порядке, в каком составлен union.
Так что будет.
Uran (2004-11-03 13:13:00) [12]если не трудно , расскажи поподробнее насчет collate!?
}|{yk (2004-11-03 13:12:00) [13]Написать свой collate
Johnmen (2004-11-03 13:11:00) [14]>Reindeer Moss Eater © (03.11.04 13:06) [3]
Не будет :)
Reindeer Moss Eater (2004-11-03 13:08:00) [15]Все верно.
Uran (2004-11-03 13:07:00) [16]с union пробовал (UKAZAT - процедура)
select * from UKAZAT ( 465 ) where obzn is null
union
select * from UKAZAT ( 465 ) where obzn like "#%"
union
select * from UKAZAT ( 465 ) where obzn like "*%"
union
select * from UKAZAT ( 465 ) where obzn like "-%"
union
select * from UKAZAT ( 465 ) where obzn not like "*%" and obzn not like " %" and obzn not like "#%"
не получается .. с # все равно после * получается!
Reindeer Moss Eater (2004-11-03 13:06:00) [17]Скорее всего результирующий набор у UNION ALL все равно будет отсортирован по PK если не указывать ORDER BY
Johnmen (2004-11-03 13:03:00) [18]
IS NULL, LIKE '#%' и т.п.
UNION ALL
Reindeer Moss Eater (2004-11-03 13:00:00) [19]Поможет функция, возвращающая нужный "вес" этих символов