我有以下SQL表列...
id | name | under
---|-------|------
0 | Nill | -1
1 | Name1 | 0
2 | Name2 | 0
3 | Name3 | 0
4 | Name4 | 1
5 | Name5 | 2
6 | Name6 | 2
7 | Name7 | 1
8 | Name8 | 3
9 | Name9 | 2
10| Name10| 3
我需要输出如下
Name1
Name4
Name7
Name2
Name5
Name6
Name9
Name3
Name8
Name9
帮我找出解决方案。
答案 0 :(得分:0)
我认为你正在寻找类似的东西。
;WITH CTE AS (
SELECT id parent , * FROM Users WHERE under = 0
UNION ALL
SELECT CTE.id patent ,T.* FROM Users T INNER JOIN CTE ON CTE.id = T.under
)
select * from CTE
order by parent, under
答案 1 :(得分:-1)
您可以使用以下语法执行此操作: -
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);