当前位置: 代码迷 >> Sql Server >> 关于包含字符'-'的ORDER BY有关问题
  详细解决方案

关于包含字符'-'的ORDER BY有关问题

热度:16   发布时间:2016-04-27 19:11:16.0
关于包含字符'-'的ORDER BY问题
表里有以下三条数据,字段COL的类型为nvarchar(100)。
eBusiness Consultant
E-business Manager
eBusiness Specialist

如果ORDER BY COL,则返回
eBusiness Consultant
E-business Manager
eBusiness Specialist

如果ORDER BY CONVERT(varchar(100),COL),则返回
E-business Manager
eBusiness Consultant
eBusiness Specialist

看上去直接ORDER BY该字段的时候好像忽略了字符‘-’,不知道为什么?请大虾们给分析分析,非常感谢!

------解决方案--------------------
解决方法(或许比convert快点,没测试过):

order by lower(COL) collate Latin1_General_Bin

具体原因未明。
------解决方案--------------------
另外,根据我的测试,位于最后的连字符“-”不会被忽略,仍然参加排序,单独的连字符属于此例的特殊情况。
------解决方案--------------------
SQL Server 2008 也存在这个问题,看了相关的资料,看来是MS有意为之,不知为何拿单引号和连接号作文章。
  相关解决方案