首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

口试SQL题 得出表中含有文件的文件夹

2013-07-01 
面试SQL题 得出表中含有文件的文件夹表:testpathisfolder/music/a.sqlF/music/T/pic/T/pic/b.sqlF/mnt/T表

面试SQL题 得出表中含有文件的文件夹



表:
test

path              isfolder

/music/a.sql        F
/music/             T
/pic/               T
/pic/b.sql          F
/mnt/               T


表test中,path字段和isfolder字段

写SQL,列出文件夹中有文件的文件夹

请各位大侠指点! SQL 面试
[解决办法]

if object_id('test') is not null
drop table test
go
create table test
(
path nvarchar(20),
isfolder nvarchar(10)
)
go
insert into test
select '/music/a.sql','F' UNION ALL
select '/music/','T' UNION ALL
select '/pic/','T' UNION ALL
select '/pic/b.sql','F' UNION ALL
select '/mnt/','T'
go
--select len(path) -charindex('/',reverse(path)) from test where isfolder ='F'
--select reverse(right(reverse(path),len(path) -charindex('/',reverse(path)))),* from test 
--where isfolder ='F'
go
select
substring(
reverse(right(reverse(path),len(path) -charindex('/',reverse(path)))),
2,
len(path) -charindex('/',reverse(path))
)
from test 
where isfolder ='F'

[解决办法]
select a.path, a.isfolder from 
(select * from test where isfolder = 'T') a 
inner join
(select * from test where isfolder = 'F') b 
on b.path like a.path + '%'

热点排行