日期:2014-05-18 浏览次数:20522 次
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)
------解决方案--------------------
select *from tab_a order by left(ph,6),right(ph,len(ph)-charindex('-',ph))