sql 有点复杂的查询语句

gaishishengzhu1314 2009-05-04 02:33:54

比如数据库里面有个编号字段!

000017
042834
046848
086411
1010100001
1010100002
1010100004
1010100006


然后要按 1010100006 类似这么长的拍在上面,000017这么短的排在后面!就是10位数的要按顺序排前面,没有10位数的,那顺序排在10位数的后面!


请问高手们,这个语句怎么写啊?
...全文
96 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
conan304 2009-05-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 csdyyr 的回复:]
SQL codeDECLARE @TB TABLE([COL] VARCHAR(10))
INSERT @TB
SELECT '000017' UNION ALL
SELECT '042834' UNION ALL
SELECT '046848' UNION ALL
SELECT '086411' UNION ALL
SELECT '1010100001' UNION ALL
SELECT '1010100002' UNION ALL
SELECT '1010100004' UNION ALL
SELECT '1010100006'

SELECT * FROM @TB ORDER BY LEN(COL) DESC,COL
/*
COL
----------
1010100001
1010100002
1010100004
10101…
[/Quote]

支持
高风坤 2009-05-04
  • 打赏
  • 举报
回复
学习一下
csdyyr 2009-05-04
  • 打赏
  • 举报
回复
DECLARE @TB TABLE([COL] VARCHAR(10))
INSERT @TB
SELECT '000017' UNION ALL
SELECT '042834' UNION ALL
SELECT '046848' UNION ALL
SELECT '086411' UNION ALL
SELECT '1010100001' UNION ALL
SELECT '1010100002' UNION ALL
SELECT '1010100004' UNION ALL
SELECT '1010100006'

SELECT * FROM @TB ORDER BY LEN(COL) DESC,COL
/*
COL
----------
1010100001
1010100002
1010100004
1010100006
000017
042834
046848
086411
*/

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧