检索亲子幼童,儿童recors在SQL查询
问题描述:
Get records containing all the child records in sql server检索亲子幼童,儿童recors在SQL查询
我得到一个输出(以上来自第二个答案说链路)如预期,但它在下面的格式显示结果。
<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>
我怎样才能制定上述的显示顺序?
答
添加递归列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 Management Studio中运行代码,则空间会被看到(在SQL小提琴可能会有一个默认的修剪结果
+0
REPLICATE功能是您的问题的真正答案。这里的问题:http://msdn.microsoft.com/en-us/library/ms174383(v=sql.105).aspx – 2014-11-21 09:01:12
我的答案在下面有帮助吗?需要关于它背后的逻辑的额外信息? – 2014-11-21 15:04:41