ofi*_*fir 5 sql database select oracle11g
我在 oracle db 上有这个表:

我可以执行将 PARENT 列更改为与其关联的名称的嵌套选择查询吗?像这样:

我试过了:
SELECT PC.ID
,(
SELECT PC.NAME from PRODUCTS_CATEGORIES PC where PC.PARENT = PC.ID
)
,PC.NAME
FROM PRODUCTS_CATEGORIES PC
Run Code Online (Sandbox Code Playgroud)
并收到此错误:
Error Message: ORA-01427: single-row sub query returns more than one row
Run Code Online (Sandbox Code Playgroud)
你可以这样做
SELECT PC.ID,
(
SELECT DISTINCT PC2.NAME from PRODUCTS_CATEGORIES PC2
where PC.PARENT = PC2.ID AND PC2.PARENT = 0
),
PC.NAME
FROM PRODUCTS_CATEGORIES PC
Run Code Online (Sandbox Code Playgroud)
或者
SELECT PC.ID,NVL(PC2.NAME,PC.PARENT) PC2_NAME,PC.NAME
FROM PRODUCTS_CATEGORIES PC
LEFT OUTER JOIN
(SELECT DISTINCT ID, NAME
from PRODUCTS_CATEGORIES WHERE PARENT = 0) PC2 ON PC.PARENT = PC2.ID
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66009 次 |
| 最近记录: |