请教一个sql语句的写法,求大神指教。谢谢,在线等

黑夜中的一点慰藉 开发  2014-05-23 02:41:27
现在有一张表GWSJ_YDLKJH,里面有这么个地点"DD",他里面存的值是“432.2-435.6”,“123.23-343.00”,"1#,2#",等类型的字符,
只有上面的两中类型的数据,有数组的中间只有一个“-”,现在我想让数据按照“123.23-343.00”,“432.2-435.6”,"1#,2#",这样的方式排序,即数字型的放到一起,按照“-”前面的数字从小到大排序,后面是1#类型的放到后面,这样的一个sql语句该怎么写,求大神指教。谢谢,在线等
...全文
263 点赞 收藏 11
写回复
11 条回复
猪猪猪怕 2014年05月26日
路过学习学习!!
回复 点赞
RICHEER COCA 2014年05月24日
路过学习学习
回复 点赞
黑夜中的一点慰藉 2014年05月23日
select to_number(substr(dd, 0, instr(t.dd, '-') - 1))as lc
  from GWSJ_YDLKJH t
 order by lc asc
大家看看我这个有没有优化的
回复 点赞
黑夜中的一点慰藉 2014年05月23日
引用 1 楼 whos2002110 的回复:

select * from (select * from test_order where dd like '%-%' order by dd) a
union 
select * from (select * from test_order where dd like '%#%' order by dd) b
这个好像不行吧,oracle的数据库
回复 点赞
黑夜中的一点慰藉 2014年05月23日
谢谢上面的。。。
回复 点赞
嘟嘟xo 2014年05月23日
MySQL可以这样: select * from GWSJ_YDLKJH order by instr(DD,'-')=0,DD;
回复 点赞
chen254810107 2014年05月23日
各个数据库的写法是不一样的, 如果是oracle的话 二楼的 就可以
回复 点赞
LinyangMeng 2014年05月23日
2楼的就可以了
回复 点赞
兔子托尼啊 2014年05月23日
就楼上的union 应该可以的
回复 点赞
whos2002110 2014年05月23日
你是什么数据库? 去sql区问吧, 那边比较专业
回复 点赞
whos2002110 2014年05月23日

select * from (select * from test_order where dd like '%-%' order by dd) a
union 
select * from (select * from test_order where dd like '%#%' order by dd) b
回复 点赞
发动态
发帖子
Web 开发
创建于2007-09-28

5.2w+

社区成员

34.1w+

社区内容

Java Web 开发
社区公告
暂无公告