-- DB2 遞歸查詢SQL的寫法
-- 參考:https://blog.csdn.net/kouge94/article/details/50977801
-- 第一種,從上往下,查詢數據(根據標準分類,獲取所有的子分類)
-- 第一種,從上往下,查詢數據(根據標準分類,獲取所有的子分類)
WITH TEMP(CATEGORY_ID,CATEGORY_NAME,CATEGORY_PARENT_ID) AS
(
---語句1
SELECT CATEGORY_ID,CATEGORY_NAME,CATEGORY_PARENT_ID FROM T_CATEGORY WHERE CATEGORY_ID='parentId'
---語句2
UNION ALL
---語句3
SELECT MT.CATEGORY_ID,MT.CATEGORY_NAME,MT.CATEGORY_PARENT_ID FROM T_CATEGORY AS MT, TEMP AS DT WHERE MT.CATEGORY_PARENT_ID=DT.CATEGORY_ID
)
SELECT CATEGORY_ID,CATEGORY_NAME,CATEGORY_PARENT_ID FROM TEMP;
-- 第二種,從下往上,查詢數據(根據子分類,獲取所有的父級分類)
-- 第二種,從下往上,查詢數據(根據子分類,獲取所有的父級分類)
WITH TEMP(CATEGORY_ID,CATEGORY_NAME,CATEGORY_PARENT_ID) AS
(
---語句1
SELECT CATEGORY_ID,CATEGORY_NAME,CATEGORY_PARENT_ID FROM T_CATEGORY WHERE CATEGORY_ID='subId'
---語句2
UNION ALL
---語句3
SELECT MT.CATEGORY_ID,MT.CATEGORY_NAME,MT.CATEGORY_PARENT_ID FROM T_CATEGORY AS MT, TEMP AS DT WHERE MT.CATEGORY_ID=DT.CATEGORY_PARENT_ID
)
SELECT CATEGORY_ID,CATEGORY_NAME,CATEGORY_PARENT_ID FROM TEMP;
若是覺得有幫助,請在下方點贊。