Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неправильная сортировка / 10 сообщений из 10, страница 1 из 1
03.06.2004, 14:34:02
    #32546715
Yaromir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
Вот такой запрос:

select * from q_priv
WHERE UPPER(STREET)=:STREET
ORDER BY HOUSE, BUILD, QUART

где BUILD - VARCHAR(5), QUART - SMALLINT,
так вот в чем странность, должен выводить список квартир в домах в порядке возрастания, но почему то выдает странный результат, так после 72 квартиры может идти 29, если убрать поле BUILD - то сортирует правильно, но его убирать нельзя, это дома с буквами - например 21 а, почему то упорно не хочет сортировать, если перед SMALLINT полем идет VARCHAR, это глюк или что-то можно сделать? Замена поля на CHAR, равно как и использование COLLATE PXW_CYRL эффекта не дала
...
Рейтинг: 0 / 0
03.06.2004, 14:39:40
    #32546746
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
Пример "неправильных" полученных данных ?
...
Рейтинг: 0 / 0
03.06.2004, 14:49:10
    #32546782
Yaromir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
30 ЛЕТ ПОБЕДЫ 2 71
30 ЛЕТ ПОБЕДЫ 2 72
30 ЛЕТ ПОБЕДЫ 2 72
30 ЛЕТ ПОБЕДЫ 2 29
...
Рейтинг: 0 / 0
03.06.2004, 15:36:25
    #32546943
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
А где дома ?
Приводи реальные данные, а не обрезанные.
...
Рейтинг: 0 / 0
03.06.2004, 15:50:54
    #32546992
Yaromir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
STREET HOUSE BUILD QUART
30 ЛЕТ ПОБЕДЫ 2 71
30 ЛЕТ ПОБЕДЫ 2 72
30 ЛЕТ ПОБЕДЫ 2 29
и дальше
30 ЛЕТ ПОБЕДЫ 21 а 1
30 ЛЕТ ПОБЕДЫ 21 а 2

и т.д., но квартиры не ставит в порядке увеличения, в каждом доме одна или несколько квартир выбивается из ряда, ставится последними
...
Рейтинг: 0 / 0
03.06.2004, 15:58:41
    #32547016
Лентяй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
STREET HOUSE BUILD QUART
30 ЛЕТ ПОБЕДЫ 2 71
30 ЛЕТ ПОБЕДЫ 2 72
30 ЛЕТ ПОБЕДЫ 2 29

Тут 3 поля а на четыре. Я так понимаю, что Build is null а
null == null = ХЗ
null > null = ХЗ
null < null = ХЗ

и как он из отсортирует тоже ХЗ, а уж потом по квартирам

Удачи.
...
Рейтинг: 0 / 0
03.06.2004, 16:08:30
    #32547044
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
Правильно подмечено.
Для
30 ЛЕТ ПОБЕДЫ 2 71
30 ЛЕТ ПОБЕДЫ 2 72
поле BUILD=''
а для
30 ЛЕТ ПОБЕДЫ 2 29
поле BUILD есть NULL
...
Рейтинг: 0 / 0
03.06.2004, 16:12:50
    #32547052
Yaromir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
Да, все верно, там где buid is null и идут траблы, но как же хранить дома без буквенных индексов тогда?
...
Рейтинг: 0 / 0
03.06.2004, 16:15:34
    #32547060
Лентяй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
Не разрешай хранение null в поле, при проектировании структуры без необходимости. Не будешь трахаться с трехзвенной логикой...

Удачи.
...
Рейтинг: 0 / 0
08.06.2004, 10:58:36
    #32551932
Valery Shiskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неправильная сортировка
Попробуйте
ORDER BY HOUSE, BUILD, QUART ASC NULLS FIRST

или

ORDER BY HOUSE, BUILD, QUART ASC NULLS LAST
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неправильная сортировка / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]