好贷网好贷款

排序问题SQL 40Alice814108771]

发布时间:2016-12-3 6:18:42 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"排序问题SQL 40Alice814108771]",主要涉及到排序问题SQL 40Alice814108771]方面的内容,对于排序问题SQL 40Alice814108771]感兴趣的同学可以参考一下。

譬如一个表 有两个字段 其中一个字段是编号 但是这个编号是有规律的 如下 091101-1 091101-2 091102 091103 091104 …… 091199 101201 101202 101203 101204 …… 1012100 我要求按照这个字段,譬如这个字段叫做 ph排序后会像上面一样,前四位是类似年月的什么0912,后面是从01~大于01的数字组合而成,而且后面的数字可能自带-1、-2,我该怎么排序?

order by ph,replace(right(ph,len(ph)-7),'-','')

order by left(ph,4),substring(ph,5,2),right(ph,len(ph)-charindex('-',ph))

要排成什么样子的?

lz给的数据和结果不明显 直接select * from tb order by ph就能得到你发的结果其实 你要说下规则啊 

对有-的,没-的,什么都没的,怎么排序

create table tab_a ( ph varchar(30) ) delete from tab_a insert into tab_a select '091103' union all select '091101-1' union all select '091104' union all select '091102' union all select '091101-2'  select *from tab_a order by ph --我自己建立个表存放测试数据  数据的顺序我刻意错乱 插入 --查询只需要 order by ph 就行了

补充下查询结果 091101-1 091101-2 091102 091103 091104

SELECT * FROM DBO.TB ORDER BY LEFT(ph,6)

引用 4 楼 geniuswjt 的回复:lz给的数据和结果不明显 直接select * from tb order by ph就能得到你发的结果其实 你要说下规则啊不行,这样的话 1101 100 会排在110 111之前,

引用 6 楼 oulinhnzz 的回复:SQL code create table tab_a (     ph varchar(30) ) delete from tab_a insert into tab_a select '091103' union all select '091101-1' union all select '091104' union all select '091102' u……不行,这样的话 1101 100 会排在1101 11之前

引用 4 楼 geniuswjt 的回复:lz给的数据和结果不明显 直接select * from tb order by ph就能得到你发的结果其实 你要说下规则啊不行,这样的话 1101 100 会排在1101 11之前

select *from tab_a order by left(ph,6),right(ph,len(ph)-charindex('-',ph))

学习。

不懂T-SQL,帮顶。

上一篇:求助! 20分,无满意结帖,结帖人shift3325]
下一篇:关于mysql2000和2005几种常用指令的返回包信息。 30strugglelif]

相关文章

相关评论