Lil*_*sey 14 t-sql sql-server sorting
有没有办法在sqlserver中的数据字符串的开头放置非打印或非突出字符.这样当执行order by时,字符串按字母顺序排在字母z之后?
我在字符串的开头使用了一个空格来获取排序列表顶部的字符串,但我希望做一些类似的事情,在列表的末尾放一个字符串.
我宁愿不在表中添加另一个字段如"SortOrder"来用于排序,我宁愿不必在我的代码中对列表进行排序.
补充:是的我知道这是一个坏主意,感谢所有人提到它,但仍然,我很好奇我能提出的问题是什么
由于没有人冒险正确回答你的问题,这是我的答案
鉴于:您已经添加<space>了一些其他数据,以使它们显示为顶部
解决方案:添加CHAR(160)使其显示在底部.这实际上也是一个空间,但是它被设计用于计算机系统,而不是将其视为分词(因此名称).
http://en.wikipedia.org/wiki/Non-breaking_space
您的要求:
我觉得这很合适!
create table my(id int,data varchar(100))
insert my
select 1,'Banana' union all
select 2,Char(160) + 'mustappearlast' union all
select 3,' ' +N'mustappearfirst' union all
select 4,'apple' union all
select 5,'pear'
select *
from my
order by ASCII(lower(data)), data
Run Code Online (Sandbox Code Playgroud)
(好吧,我作弊,我必须添加,ASCII(lower(但这最接近你的要求,而不是到目前为止所有其他答案)
| 归档时间: |
|
| 查看次数: |
6431 次 |
| 最近记录: |