1
私は部門リストを持つデータベースにテーブルを持っています。 階層的結論sql
私は、コードのこの作品を書いた:
WITH tree (Id, Name, Level)
AS
(
SELECT t.Id, t.Name, 0 AS Level
FROM DepartmentsT AS t WHERE t.ParentId IS NULL
UNION ALL
SELECT d.Id, d.Name, Level+1
FROM DepartmentsT AS d INNER JOIN tree ON tree.Id = d.ParentId
)
SELECT * FROM tree
をそして私はだからここに質問を
を得ました。どのように私は "階層的に"表示するためにレコードを作ることができます、私は子供たちが彼らの親の下に表示された、彼らは今表示されている方法ではないのですか?今では、それらはネストされたレベルによってソートされ、単純なORDER BYは問題を解決しません。あなたの助けを願います。
WITH tree (Id, Name, Level, parents) AS (
SELECT t.Id, t.Name, 0 AS Level,
cast(t.id as varchar(max)) as parents
FROM DepartmentsT t
WHERE t.ParentId IS NULL
UNION ALL
SELECT d.Id, d.Name, Level+1,
tree.parents + '-->' + cast(d.id as varchar(max))
FROM DepartmentsT d INNER JOIN
tree
ON tree.Id = d.ParentId
)
SELECT id, name, level
FROM tree
ORDER BY parents;
注:あなたは木を横断する
あなたの答えをありがとう、ちょうど親にidsを変更し、それは働いた! – Gelo