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

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

513427——104100
如果只返回这一条数据 那么需要添加语句让他返回两条
513427——104100
513——104100
像这个样子 我个人对于SQL比较苦手 还希望大家可以给点建议 如果有思路就最好了
...全文
144 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
桃花岛黄岛主 2016-08-11
  • 打赏
  • 举报
回复

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
  • 打赏
  • 举报
回复
没怎么看明白,你给一个你的预期结果的表格出来;

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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