Oracle SQL从单个表创建不同级别的数据

编程入门 行业动态 更新时间:2024-10-27 10:29:21
本文介绍了Oracle SQL从单个表创建不同级别的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试在SELECT语句中创建新列,以从同一张表中挑选出顶层行.

I'm trying to create a new column in a SELECT statement that picks out top level lines from withing the same table.

样本数据:

ITEM_VALUE DESCRIPTION LEVEL_NO ITEM_ABOVE 100 Ford 3 CAR 200 Honda Own 3 CAR 210 Honda 3rd Party 3 CAR 1000 Ford 4 100 2000 Honda T Own 4 200 801 Ford 1 4 1000 802 Ford 2 4 1000 803 Ford 3 4 1000 804 Ford 4 4 1000 805 Ford 5 4 1000 806 Ford 6 4 1000 807 Ford 7 4 1000 808 Ford 8 4 1000 814 Ford 4 1000 809 Honda 4 2000 2100 Honda T 3rd Party 4 210

期望的输出:

DESCRIPTION ITEM_GROUP Ford Ford Honda Own Honda Own Honda 3rd Party Honda 3rd Party Ford Ford Honda T Own Honda Own Ford 1 Ford Ford 2 Ford Ford 3 Ford Ford 4 Ford Ford 5 Ford Ford 6 Ford Ford 7 Ford Ford 8 Ford Ford Ford Honda Honda Own Honda T 3rd Party Honda 3rd Party

推荐答案

您可以使用递归CTE:

You can use a Recursive CTE:

WITH CTE(ITEM_VALUE, ITEM_ABOVE, DESCRIPTION, ITEM_GROUP) AS ( SELECT ITEM_VALUE, ITEM_ABOVE, DESCRIPTION, DESCRIPTION AS ITEM_GROUP FROM mytable WHERE ITEM_ABOVE = 'CAR' UNION ALL SELECT t1.ITEM_VALUE, t1.ITEM_ABOVE, t1.DESCRIPTION, t2.ITEM_GROUP FROM mytable t1 JOIN CTE t2 ON t1.ITEM_ABOVE = t2.ITEM_VALUE ) SELECT ITEM_VALUE, ITEM_ABOVE, DESCRIPTION, ITEM_GROUP FROM CTE

更多推荐

Oracle SQL从单个表创建不同级别的数据

本文发布于:2023-07-16 16:13:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1123449.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   Oracle   SQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!