我有這個遞歸CTE的一個小問題,它工作正常,除非我有一個沒有根可讀權限的用戶意味着沒有這個元素的條目。因此,如果我在樹中的葉子上使用權限的用戶運行此查詢,此查詢的級別部分將無法正常工作。遞歸cte sql與層次級別
它將顯示出真實的水平層次結構例如6但對他來說其頂端第一可讀元件所以它應該是1
WITH Tree
AS (
SELECT
id,
parent,
0 AS Level,
id AS Root,
CAST(id AS VARCHAR(MAX)) AS Sort,
user_id
FROM SourceTable
WHERE parent IS NULL
UNION ALL
SELECT
st.id,
st.parent,
Level + 1 AS Level,
st.parent AS Root,
uh.sort + '/' + CAST(st.id AS VARCHAR(20)) AS Sort,
st.user_id
FROM SourceTable AS st
JOIN Tree uh ON uh.id = st.parent
)
SELECT * FROM Tree AS t
JOIN UserTable AS ut ON ut.id = t.user_id AND ut.user_id = '141F-4BC6-8934'
ORDER BY Sort
水平如下
id level
5 0
2 1
7 2
4 2
1 2
6 1
3 2
8 2
9 3
當用戶現在只擁有閱讀權8和9時,CTE的等級爲2,id 8爲3,但是如果之前沒有人,我需要id 8等級1
你能顯示一些數據和預期的結果嗎? – Kaf
水平如下 ID, 水平5,0 2,1 7,2 4,2 1,2 6,1 3,2 8,2 9,3 當用戶現在只有閱讀權利ID 8和9從cte的水平停留在2爲id 8和3爲id 9,但我需要爲id 8級別1,如果之前沒有人 – Mikatsu
thx爲後來更新相應現在 – Mikatsu