请教一个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语句该怎么写,求大神指教。谢谢,在线等
...全文
319 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪猪猪怕 2014-05-26
  • 打赏
  • 举报
回复
路过学习学习!!
RICHEER COCA 2014-05-24
  • 打赏
  • 举报
回复
路过学习学习
  • 打赏
  • 举报
回复
select to_number(substr(dd, 0, instr(t.dd, '-') - 1))as lc
  from GWSJ_YDLKJH t
 order by lc asc
大家看看我这个有没有优化的
  • 打赏
  • 举报
回复
引用 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的数据库
  • 打赏
  • 举报
回复
谢谢上面的。。。
嘟嘟xo 2014-05-23
  • 打赏
  • 举报
回复
MySQL可以这样: select * from GWSJ_YDLKJH order by instr(DD,'-')=0,DD;
chen254810107 2014-05-23
  • 打赏
  • 举报
回复
各个数据库的写法是不一样的, 如果是oracle的话 二楼的 就可以
LinY_X 2014-05-23
  • 打赏
  • 举报
回复
2楼的就可以了
tony4geek 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

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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