大家好,都回去过年了吗?请问转换成树状层级结构显示问题

一缕青烟 2013-02-02 10:47:24
数据库里存放了以下数据
a\b\1.txt
a\b\2.txt
a\2.jpg
b\1\5.jpg

需要的查询结果显示为:
a
b
1.txt
2.txt
2.jpg
b
1
5.jpg

谢谢
...全文
268 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
haitao 2013-02-02
  • 打赏
  • 举报
回复
程序做这个比较合适
  • 打赏
  • 举报
回复
with tb(txt)
as(
select 'a\b\1.txt' union all
select 'a\b\2.txt' union all
select 'a\2.jpg' union all
select 'b\1\5.jpg')
,cte
as(
select 
[all]=substring(t.txt+'\',1,number-1),
txt=(case when charindex('\',reverse(substring(t.txt+'\',1,number-1)))-1<0 then substring(t.txt+'\',1,number-1) else
right(substring(t.txt+'\',1,number-1),
charindex('\',reverse(substring(t.txt+'\',1,number-1)))-1)
end)
 from tb t,master..spt_values where type='p' and number between 1 and len(t.txt)+1 and substring(t.txt+'\',number,1)='\'
)
select distinct txt,[all] from cte order by [all]

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧