Oracle 根据同一记录的另一列获取记录的列
Oracle get column of a record depending on another column of the same record
我正在尝试根据同一记录的列检索记录。
我的 table 中有层次结构字段(使用 parent 和 grand parent),我想检索具有 parent id 的相同 table 的数据或盛大parent:
SELECT
O.ID,
O.CODE,
O.LEVEL,
O.PARENT_ID,
O.PARENT_CODE,
parent.LEVEL AS PARENT_LEVEL,
FROM Organisation_T O
INNER JOIN Organisation_T NT parent on parent.ID = O.ID
WHERE parent.ID = O.ID
但是这个查询不起作用。
这是我的数据:
ID | CODE | LEVEL | PARENT_ID
5953 | COMPANY | 1 | 1
230928 | DEP 1 | 2 | 5953
5234 | DEP 2 | 2 | 5953
7246 | A | 3 | 5234
7285 | A.1 | 4 | 7246
7286 | A.2 | 4 | 7246
240961 | A.3 | 4 | 7246
243928 | C | 3 | 5234
7287 | D | 4 | 243928
这里是我想要的:
ID | CODE | LEVEL | PARENT_ID | PARENT_CODE | PARENT_LEVEL
5953 | COMPANY | 1 | 1 | null | null
230928 | DEP 1 | 2 | 5953 | COMPANY | 1
5234 | DEP 2 | 2 | 5953 | COMPANY | 1
7246 | A | 3 | 5234 | DEP 2 | 2
7285 | A.1 | 4 | 7246 | A | 3
7286 | A.2 | 4 | 7246 | A | 3
240961 | A.3 | 4 | 7246 | A | 3
243928 | C | 3 | 5234 | DEP 2 | 2
7287 | D | 4 | 243928 | C | 3
你能帮我解决这个问题吗?
连接条件使用不正确INNER JOIN Organisation_T NT parent on parent.ID = *O.Parent_ID*
对于 T-SQL 你可以使用,假设示例数据是正确的:
SELECT
O.ID,
O.Code,
O.Level,
parent.Id as Parent_Id,
parent.Code as Parent_Code,
parent.Level as Parent_Level
FROM Organisation_T O
INNER JOIN Organisation_T parent on parent.ID = O.Parent_Id
我正在尝试根据同一记录的列检索记录。 我的 table 中有层次结构字段(使用 parent 和 grand parent),我想检索具有 parent id 的相同 table 的数据或盛大parent:
SELECT
O.ID,
O.CODE,
O.LEVEL,
O.PARENT_ID,
O.PARENT_CODE,
parent.LEVEL AS PARENT_LEVEL,
FROM Organisation_T O
INNER JOIN Organisation_T NT parent on parent.ID = O.ID
WHERE parent.ID = O.ID
但是这个查询不起作用。
这是我的数据:
ID | CODE | LEVEL | PARENT_ID
5953 | COMPANY | 1 | 1
230928 | DEP 1 | 2 | 5953
5234 | DEP 2 | 2 | 5953
7246 | A | 3 | 5234
7285 | A.1 | 4 | 7246
7286 | A.2 | 4 | 7246
240961 | A.3 | 4 | 7246
243928 | C | 3 | 5234
7287 | D | 4 | 243928
这里是我想要的:
ID | CODE | LEVEL | PARENT_ID | PARENT_CODE | PARENT_LEVEL
5953 | COMPANY | 1 | 1 | null | null
230928 | DEP 1 | 2 | 5953 | COMPANY | 1
5234 | DEP 2 | 2 | 5953 | COMPANY | 1
7246 | A | 3 | 5234 | DEP 2 | 2
7285 | A.1 | 4 | 7246 | A | 3
7286 | A.2 | 4 | 7246 | A | 3
240961 | A.3 | 4 | 7246 | A | 3
243928 | C | 3 | 5234 | DEP 2 | 2
7287 | D | 4 | 243928 | C | 3
你能帮我解决这个问题吗?
连接条件使用不正确INNER JOIN Organisation_T NT parent on parent.ID = *O.Parent_ID*
对于 T-SQL 你可以使用,假设示例数据是正确的:
SELECT
O.ID,
O.Code,
O.Level,
parent.Id as Parent_Id,
parent.Code as Parent_Code,
parent.Level as Parent_Level
FROM Organisation_T O
INNER JOIN Organisation_T parent on parent.ID = O.Parent_Id