SQL for SQLite:排序不使用空列

时间:2011-09-14 07:01:05

标签: sql sqlite sorting

以下是我对SQLite的sql语句:

Select UGM.*, C.Name, C.ChatName From
UserGroupMembers UGM Inner Join Contacts C On C.ContactID = UGM.MemberID
Where (UGM.OwnerID = ?) And (UGM.UserGroupID = ?)
Order By COALESCE(C.Name, C.ChatName) 

表Contacts包含Name和ChatName列。如果Name列不为null,则在排序中使用此列中的数据。如果为Null,则使用ChatName中的数据。两列永远不会同时为空。

sql语句确实返回正确的行但从未正确排序。知道为什么吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你可以简单地使用它:

Select * from (
  Select UGM.*, C.Name, C.ChatName, COALESCE(C.Name, C.ChatName) as Sorting 
    From UserGroupMembers UGM 
    Inner Join Contacts C On C.ContactID = UGM.MemberID
    Where (UGM.OwnerID = ?) And (UGM.UserGroupID = ?))
) Order By Sorting