天天看點

DB2 遞歸查詢SQL的寫法

--  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; 
           

若是覺得有幫助,請在下方點贊。