这是我在一段时间内遇到的最有趣的问题之一。我在SQL server 2008中定义了一个标量函数,它的返回类型为varchar(max)。
以下是查询:
Select dbo.GetJurisdictionsSubscribed(u.UserID) as 'Jurisdiction' From Users u ORDER BY Jurisdiction desc谁能解释一下为什么AAAA...会在结果集中记录第二条记录?我正在做降序排序,AAA...应该出现在最后。如果我将查询更改为
Jurisdiction ascAAA在列表中排名倒数第二,而不是第一条记录。
这是结果集的屏幕截图:http://i48.tinypic.com/23j5vzq.jpg
我是不是遗漏了什么?
发布于 2012-12-11 23:09:45
因为,正如你在截图中看到的,它们在“Wise”单词之前的其他行中是一个空格(并且空格大于“A”)
您可以使用以下命令对此空间执行left trim:
ORDER BY ltrim( Jurisdiction ) desc发布于 2012-12-11 23:09:52
这是正确的排序顺序。你有空格。您必须阅读Case Sensitive Collation Order。
发布于 2012-12-11 23:10:58
请注意前导空格,请尝试
SELECT ...
FROM ...
ORDER BY LTRIM(Jurisdiction) descLTRIM会很好的。
https://stackoverflow.com/questions/13822590
复制相似问题