按SQL Server中的计算列排序不起作用

时间:2016-06-10 20:27:10

标签: sql-server sorting sql-order-by

我有以下查询,并希望按用户名

订购列表
select distinct
    SUBSTRING(u.FullName, CHARINDEX(' ', u.FullName) + 1, LEN(u.FullName)) + ',     ' + SUBSTRING(u.FullName, 1, CHARINDEX(' ', u.FullName) - 1) as UserName
from 
    Users u
where 
    u.Active = 1
order by 
    SUBSTRING(u.FullName, CHARINDEX(' ', u.FullName) + 1, LEN(u.FullName)) + ', ' + SUBSTRING(u.FullName, 1, CHARINDEX(' ', u.FullName) - 1)

这里的问题是两个姓氏为r且w的用户总是显示在列表的顶部,而列表的其余部分则从A到Z排序。

有任何建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我现在知道了,显示在列表顶部的两个用户,他们的全名存储在数据库中,在名字和姓氏之间有两个空格。 左trim解决了问题。