求救!sqlite怎么把以:分割的字符串分成多个字段值

ice_seal_heart 2019-07-12 09:38:44
比如id part
1 225100:03:1:20160701
2 225100:02:3:20160725;225100:01:20:20160601
3 225200:03::20160411
4 225300:02:14:
怎么用sql分成:
id a b c d e
1 225100 100 03 1 20160701
冒号后面没数的为空值。好像要自定义函数,但不知道怎么写,请教各位大神!!!
...全文
2070 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice_seal_heart 2020-11-13
  • 打赏
  • 举报
回复 2
解决了,自己一步步用sql语句改的: with a as ( SELECT substr(part,22,21)part FROM chq3g4 where id=1 union all SELECT substr(part,1,20)part FROM chq3g4 where id=1 union all SELECT part FROM chq3g4 where id not in (1,4)) SELECT 地区,分类,cast(数量 as int)数量,(substr(日期,1,4)||'-'||substr(日期,5,2)||'-'||substr(日期,7,2))日期 from ( SELECT 地区,分类,数量,'20151220' as 日期 from ( SELECT substr(part,1,6)地区 ,substr(part,8,2)分类 ,substr(part,11,2)数量 ,substr(part,14,8)日期 from a where length(part)=21 or length(part)<19 union all SELECT substr(part,1,6)地区 ,substr(part,8,2)分类 ,substr(part,11,1)数量 ,substr(part,13,8)日期 from a where length(part)=20 union all SELECT substr(part,1,6)地区 ,substr(part,8,2)分类 ,null 数量 ,substr(part,12,8)日期 from a where length(part)=19)a where length(日期)=0 union all SELECT 地区,分类,数量,日期 from ( SELECT substr(part,1,6)地区 ,substr(part,8,2)分类 ,substr(part,11,2)数量 ,substr(part,14,8)日期 from a where length(part)=21 or length(part)<19 union all SELECT substr(part,1,6)地区 ,substr(part,8,2)分类 ,substr(part,11,1)数量 ,substr(part,13,8)日期 from a where length(part)=20 union all SELECT substr(part,1,6)地区 ,substr(part,8,2)分类 ,null 数量 ,substr(part,12,8)日期 from a where length(part)=19)b where length(日期)!=0 order by 地区,分类)a 这道题帆软问答上我看到一个更简单的方法,但只是看了一遍,没有手动过一遍吧
qq_35526482 2020-09-16
  • 打赏
  • 举报
回复
从帆软一路搜过来,sqlite好像没有相关函数吧。 一年过去了,楼主解决了吗
ice_seal_heart 2019-10-25
  • 打赏
  • 举报
回复
没有啊,到现在一直都没解决,找不到大神
AllenGd 2019-10-24
  • 打赏
  • 举报
回复
楼主这个怎么解决的

2,209

社区成员

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

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