麻烦大家帮个忙 关于SQL语句

New_TheWind Java开发  2016-08-11 10:01:43
是这样现有三个表这是查询语句 返回的结果集 是这样 XZQH这个字段是分级的 但是没有Level这个字段 每一级的话会多出三位数字 现在需求要根据所属区域 显示出所有XZQH 尽管是表里没有的 例如子结果集第一行

513427——104100
如果只返回这一条数据 那么需要添加语句让他返回两条
513427——104100
513——104100
像这个样子 我个人对于SQL比较苦手 还希望大家可以给点建议 如果有思路就最好了
...全文
116 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复

select substr(XZQH,1,3) from test
union
select substr(XZQH,1,6) from test
union
select substr(XZQH,1,9) from test
union
select substr(XZQH,1,12) from test
回复
sxq129601 2016-08-11
逻辑比较复杂的话写个存储过程,把数据插入到一张临时表
回复
New_TheWind 2016-08-11
引用 3 楼 ghx287524027 的回复:
建议在设计表的时候,直接将上下级关系存储在表中,这样能省很多事
这是公司的表 我们不能改
回复
ghx287524027 2016-08-11
建议在设计表的时候,直接将上下级关系存储在表中,这样能省很多事
回复
New_TheWind 2016-08-11
引用 1 楼 js14982 的回复:
看的有点晕。是这样的么? select substr(XZQH,1,3) from test; 截取前3位?后面的再union all+排序,去重什么的
恩 基本上是这样子 但是截取完之后 自己原来的不就不见了吗 而且我这边的话 结果集中可以看到不单单是前三位 如果是12为数字的话还要前9位
回复
js14982 2016-08-11
看的有点晕。是这样的么? select substr(XZQH,1,3) from test; 截取前3位?后面的再union all+排序,去重什么的
回复
New_TheWind 2016-08-11
引用 6 楼 wang123kui 的回复:

select substr(XZQH,1,3) from test
union
select substr(XZQH,1,6) from test
union
select substr(XZQH,1,9) from test
union
select substr(XZQH,1,12) from test
自己已经写出来了 是这样的 谢谢
回复
卖水果的net 2016-08-11
没怎么看明白,你给一个你的预期结果的表格出来;
回复
相关推荐
发帖
Oracle 高级技术
创建于2007-09-28

3429

社区成员

Oracle 高级技术相关讨论专区
申请成为版主
帖子事件
创建了帖子
2016-08-11 10:01
社区公告
暂无公告