Оператор SQL ORDER BY, извлекающий меньше записей - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть программа, которая запускает встроенный SQL для извлечения данных из четырех соединенных файлов.Когда я пытаюсь упорядочить записи по полю (а не по ключевым полям), количество извлекаемых записей уменьшается с 9 999 (максимум для подфайла) до 113. Я выполнял один и тот же оператор SQL (как с предложением ORDER BY, так и без него).) на SQL Server, и они оба вернули одинаковое количество записей (более 9 999).Кто-нибудь еще сталкивался с этой проблемой, или я просто пытаюсь сделать слишком много?

SELECT  cawlaml0.WMAWID,cawlabl0.WBBLCD,cawlaml0.WMCODE,
        SUBSTRING(cawlael0.WEFKEY,1,32) as WEFKEY32,
        SUBSTRING(cawlael0.WETKEY,1,32) as WETKEY32,
        cawlaml0.WMEFFR,cawlaml0.WMEFTO,cawlaml0.WMEFLG,
        cawlaml0.WMUSED,cawladl0.WDEAAL,cawladl0.WDLORG,
        cawladl0.WDLBAL,cawlael0.WEAWLN,cawladl0.WDAWPR

FROM cawlaml0

INNER JOIN cawlabl0
        on cawlaml0.WMAWID = cawlabl0.WBAWID
INNER JOIN cawlael0
        on cawlaml0.WMAWID = cawlael0.WEAWID
LEFT OUTER JOIN cawladl0
        on cawlaml0.WMAWID = cawladl0.WDAWID


WHERE
         // The '@' fields are user input fields.
        (cawlael0.WEFKEY = :@WEFKEY or :@WEFKEY = ' ') and
        (cawlael0.WETKEY = :@WETKEY or :@WETKEY = ' ') and
        (cawlabl0.WBBLCD = :@WBBLCD or :@WBBLCD = ' ') and
        (cawlaml0.WMCODE = :@WMCODE or :@WMCODE = ' ') and
         cawlael0.WEAWLN = cawladl0.WDAWLN

ORDER BY WEFKEY32;

1 Ответ

0 голосов
/ 26 сентября 2018

Ну, похоже, проблема была не в самом SQL, а в некоторых данных.В то время как SQL мог получить все записи, причиной ошибки была моя инструкция извлечения.Я помещал поля на экран и не смог понять, что была запись (точнее 114-е) с плохими датами (WMEFFR и WMEFTO), которые выходили за допустимые пределы.

Оператор извлечения:

EXEC SQL
     FETCH NEXT FROM R1
       INTO :WMAWID,:WBBLCD,:WMCODE,:WEFKEY32,:WETKEY32,
       :WMEFFRA,:WMEFTOA,:WMEFLG,:WMUSED,:WDEAAL,
       :WDLORG,:WDLBAL,:WEAWLN,:WESTAT,:WEAWEX; 

Таблица SQL:

HUFFN Data Table

Поскольку запись была так далеко внизунесортированный список, я фактически не сталкивался с ним, пока не попытался отсортировать, так что этот на мне.

Спасибо всем за ответы!

...