我已經在Microsoft SQL環境中的以下情形的父母:我們會根據孩子的ID SQL
CREATE TABLE grps
(
[id] varchar(50),
[parentid] varchar(50),
[value] varchar(50)
);
INSERT INTO grps
([id], [parentid], [value])
VALUES
('-5001', '0', null),
('-5002', '-5001', null),
('-5003', '-5002', '50'),
('-5004', '-5003', null),
('-5005', '0', null),
('-5006', '0', null),
('-5007', '0', null),
('-5008', '-5006', null);
我試圖讓基於孩子的父母的ID。如果被查詢的ID是最後一個父母,那麼它應該只返回最後一個項目。
例子:
- 如果我查詢:
id = '-5004'
它應該返回('-5004', '-5003', null), ('-5003', '-5002', '50'), ('-5002', '-5001', null), ('-5001', '0', null)
- 如果我查詢
id = '-5007'
它應該返回('-5007', '0', null)
這將是真棒,如果它可以列出ID查詢第一其餘的則以有序的方式上升到「樹」上。
我已經嘗試了幾種不同的方法與CTE的,但不幸的是沒有運氣。所以我在這裏尋找一些幫助或想法。
在此先感謝。
謝謝!這正是我正在尋找的。當我得到代表時,我會鼓勵你。 – Gurby
@Gurby歡迎您! :) –