这个OFFSET FETCH命令通过了验证,但没有结果吗?

时间:2019-03-26 16:46:21

标签: sql sql-server salesforce-marketing-cloud

我必须将帐户连接到用户,并且这样做必须确保选择正确的帐户以确保资格,并使用多个帐户进行此操作。以下代码通过了验证,但没有结果。

我已经在表上有一个PK的CustomerNumbers列表。


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

我没有填写任何帐户ID,而几乎每个人都应该有一个。

1 个答案:

答案 0 :(得分:0)

按升序排列,NULL是第一个。因此,您首先会遇到不匹配的情况。而是添加一个表达式,以便首先进行匹配:

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