V_yaoxu 2014-01-15 14:59 采纳率: 0%
浏览 2589

oracle中sql 截取字段中的数字按条件排序

请教各位,这个sql怎么拼,我的字段(code)规则是:备案事项[2014]1,前面中文是固定的,然后是括起来的年份(可能是2013,2014,2015等等),后面是流水号(从1,2,3,...,10,..递增的),我想查出所有2013年的数据,要求按后面的流程号数字倒叙排列。恳求大神帮忙,谢谢!

  • 写回答

1条回答 默认 最新

  • 黑暗夜色 2014-01-16 01:57
    关注

    假设字段名是code
    SELECT code, substr(code,INSTR(code,'[', 0, 1)+1,INSTR(code,']', 0, 1)-1) AS year,
    to_number(substr(code, INSTR(code,']', 0, 1))) AS num
    FROM table
    WHERE year = '2013'
    ORDER BY num DESC
    试试这个 没调试过
    自己看看
    year是根据[]的位置截断得到年份
    然后把]后面的截断得到流水号 因为位数不一样 所以排序的时候需要转换成数字
    思路就是这样

    ps:虽然之前有说前面的文字是固定的 不过个人觉得还是根据格式判定的好 顺便学习这个编写的思路

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型