我有这样的数据:
WHERE PARENT_ID = 1
现在,我想选择父ID为参数的所有记录(及其本身)。例如,如果参数= 0则返回所有记录。
这是id parent_id name
-----------------------------
1 0 John
10 1 Anna
11 1 Doe
101 10 Chris
SELECT * FROM TABLE
WHERE PARENT_ID = 1
OR ID = 1
id = 101的记录包含在resultset中,因为parent = 10,其中id 10是id = 1的子项
我无法解决这个问题。
我试试:
:QOne
echo Do you want 3RVX? (Y/N)
set INPUT=
set /P INPUT=Type input: %=%
If /I "%INPUT%"=="y" goto Yes
If /I "%INPUT%"=="n" goto No
:Yes
echo axSched.exe %COMPNAME% "3RVX" /t "%DATE% %TIME%" /y > %NAMEINPUT%.txt
goto QTwo
:No
echo "REM axSched.exe %COMPNAME% "3RVX" /t "%DATE% %TIME%" /y" > NAMEINPUT%.txt
这不会返回记录,其中parent_id = 10.请帮忙。
答案 0 :(得分:1)
您可能需要构建Hierarchical Query
SELECT * FROM TABLE
WHERE 1=1
START WITH ID = 1
CONNECT BY PRIOR ID = PARENT_ID
编辑: 结果:
ID PARENT_ID NAME
1 0 John
10 1 Anna
101 10 Chris
11 1 Doe
答案 1 :(得分:0)
您可以尝试以下代码:
SELECT * FROM TABLE WHERE START WITH ID = 1 CONNECT BY PARENT_ID = PRIOR ID