sql 排序
来源:百度知道 编辑:UC知道 时间:2024/05/16 07:55:09
表中某字段值如下
10,1,2,3,4,5,6,7,附,南
想让查询结果顺序为
1,2,3,4,5,6,7,10,附,南
直接用order by结果是
1,10,2,3,4,5,6,7,附,南
不是想要的
10,1,2,3,4,5,6,7,附,南
想让查询结果顺序为
1,2,3,4,5,6,7,10,附,南
直接用order by结果是
1,10,2,3,4,5,6,7,附,南
不是想要的
加一列计算列sort_id,sort_id在col长度大于1时,前面加9,否则就等于col。oracle的写法:
select col,
case when length(col)=1 then col
when length(col)>1 '9'||col sort_id
from t
order by sort_id asc
这种做法只是解决楼主的问题,只是一个头疼医头脚疼医脚的做法。不具有普遍性。如果想彻底解决这个问题需要在表中另加一列专门用来排序的字段
select * from table order by id
没有那两个汉字还好,有汉字的话只能这样了
1,2,3,4,5,6,7,10排序方式是按数字型排列
照你说的那样只能是字符型排列,不可能出现你所说的结果
排不了啊!
1,2,3,4,5,6,7,10
这样还可以
select * from test1 order by test_id:从小到大的排列顺序
可是你加了两个文字
………………头晕!
正确
order by 语句可以用于排序,
具体参数,你查相应教程和资料,看着使用;
SELECT [id] FROM [mydata].[dbo].[mytable] order by DATALENGTH(id),id
保证正确