Get records containing all the child records in sql server
我正在按预期获得输出(来自上述链接的第二个答案),但它以下面的格式显示结果。
<parent id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<sub child id> - <name> - <code>
<sub child id> - <name> - <code>
<sub child id> - <name> - <code>
我想以下面的格式显示结果。
<parent id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<sub child id> - <name> - <code>
<sub child id> - <name> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
<sub child id> - <label> - <code>
<child id> - <name> - <code>
<child id> - <name> - <code>
我如何制定上述显示顺序?
答案 0 :(得分:0)
将递归列添加到CTE2并在最终的select语句中应如下所示:
SELECT ID,
case when Recursion = 1 then Name
else replicate(' ', Recursion) + Name end as Name,
ParentID,
Path
FROM CTE2
WHERE RowNumber = 1;
http://sqlfiddle.com/#!3/07faa/28
注意:如果在SQL Server管理工作室中运行代码,则会看到空格(在SQL Fiddle中可能会有结果的默认修剪选项