Эта команда OFFSET FETCH проходит проверку, но не дает результатов? - PullRequest
0 голосов
/ 26 марта 2019

Я должен подключить учетные записи к пользователям, и при этом я должен убедиться, что я выбираю правильную учетную запись, чтобы обеспечить соответствие требованиям и сделать это с несколькими учетными записями.Следующий код проходит проверку, но не дает результатов.

У меня уже есть список CustomerNumbers в таблице, которые являются PK.


SELECT
x.CustomerNumber,
a.ACC_AccountId

FROM Eligibles x

LEFT JOIN
    ACCOUNTS a
    ON x.CustomerNumber = a.ACC_CustomerNumber
    ORDER BY a.ACC_LIVEcode ASC,
         a.ACC_Limit DESC,
         a.ACC_Amount DESC
    OFFSET 0 ROWS
    FETCH FIRST 1 ROWS ONLY

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

1 Ответ

0 голосов
/ 26 марта 2019

В порядке возрастания, NULL s являются первыми. Итак, сначала вы получаете несоответствия. Вместо этого добавьте выражение, чтобы совпадения были первыми:

SELECT x.CustomerNumber, a.ACC_AccountId
FROM Eligibles x LEFT JOIN
     ACCOUNTS a
     ON x.CustomerNumber = a.ACC_CustomerNumber
ORDER BY (CASE WHEN ACC_CustomerNumber IS NOT NULL THEN 1 ELSE 0 END),
         aa.ACC_LIVEcode ASC, a.ACC_Limit DESC, a.ACC_Amount DESC
OFFSET 0 ROWS
FETCH FIRST 1 ROWS ONLY
...