Страница 1 из 1

DISTINCT в запросах не работает

Добавлено: 07 сен 2007, 16:02
Mechanic
Всем привет! FireBird 1.5
У меня не работают простейшие запросы типа SELECT DISTINCT * FROM Трали-Вали... Причем, Трали-Вали таблица имеет 280 полей внутри. С пятьюдесятью полями запросы отрабатывались нормально всегда... Может ограничение на DISTINCT какое-нибудь есть? Дело не в данных это точно. Я на пустой таблице даже пробывал... Кстати ошибка так выглядит у меня:
invalid request BLR at offset 1518.
BLR syntax error: expected record selection expression clause at offset 1518, encountered 24.

Заранее спасибо! :D

Добавлено: 07 сен 2007, 16:08
WildSery
Простейшие запросы с дистинктом по 280 полям? Уже страшно.
Чего ж ты там столько набрал-то?
А вот почему не работает - не скажу. Вроде ограничений никаких не припоминается. Птицеводы подойдут, просветят, если захочут.

Добавлено: 08 сен 2007, 08:41
dimitr
1) DISTINCT выполняется сортировкой, длина записи которой ограничена 64К.
2) Приведенная ошибка к DISTINCT отношение вряд ли имеет.

Добавлено: 10 сен 2007, 12:40
Mechanic
dimitr писал(а):1) DISTINCT выполняется сортировкой, длина записи которой ограничена 64К.
2) Приведенная ошибка к DISTINCT отношение вряд ли имеет.
Как это не имеет отношения когда простой запрос select distinct * from table не выполняется, а select * выполняется...

"длина записи которой ограничена 64К"... Не совсем понял что здесь за длина записи имеется ввиду.

Добавлено: 10 сен 2007, 13:29
kdv
что здесь за длина записи имеется ввиду
distinct * приводит к сортировке записи по максимальной длине столбцов. и если 280 столбцов по данным граничат с 64к, то возможно отсортировать такую запись нельзя, т.к. она в сортированном виде будет чуть больше 64к.

Добавлено: 10 сен 2007, 13:38
Mechanic
kdv писал(а):
что здесь за длина записи имеется ввиду
distinct * приводит к сортировке записи по максимальной длине столбцов. и если 280 столбцов по данным граничат с 64к, то возможно отсортировать такую запись нельзя, т.к. она в сортированном виде будет чуть больше 64к.
О... Вот, он и ответ наверное... :) Спасибо!