我必须检查是否显示了可能有多个客户与该帐户相关的帐户的客户ID。我必须根据以下优先级仅显示一个客户ID。
如果客户名称 - c ..则为3
Case customerid
when customer name like 'a%' then customer_id1
when customer name like 'b%' then customer_id2
when customer name like 'c%' then customer_id3
else customer_id4
end
不确定如何编写select语句,以便只显示最高优先级ID
Sample Data
CustomerName CustomerID AccountID
Arthur 123 acc1
Bruce 456 acc1
Billy 812 acc2
Camilla 768 acc3
Dominic 891 acc2
Expected Output
AccountID CustomerID
acc1 123
acc2 812
acc3 768
答案 0 :(得分:1)
SELECT CUSTOMERID,ACCOUNTID 从 (选择CUSTOMERNAME,ACCOUNTID, RANK()OVER(由ACCOUNTID ORDER BY组成 CUSTOMERNAME喜欢' a%'然后1 当CUSTOMERNAME喜欢' a%'然后2 当CUSTOMERNAME喜欢' a%'然后3 ELSE 4)RNK 来自TABLE1) RNK = 1
答案 1 :(得分:0)
我不知道我是否理解你的问题。
但根据你的例子,你可以试试这个:
SELECT AccountID, min(CustomerID)
FROM SampleData
GROUP BY AccountID