我有一个字符串(代表文件夹路径)。最大级别数已知(子子文件夹) 最小级别数已知(根不包含文件)。文件夹名称可以包含空格。没有迹象表明示例中的 a 是文件夹还是文件.............我希望将该字符串拆分为列。
CREATE TABLE TESTDATA([path] [nvarchar](max))
INSERT INTO TESTDATA (path) VALUES (N'/a/)
INSERT INTO TESTDATA (path) VALUES (N'/a/ab/filename1)
INSERT INTO TESTDATA (path) VALUES (N'/a/ab/abc/filename2)
INSERT INTO TESTDATA (path) VALUES (N'/a/ab/abc/filename3)
INSERT INTO TESTDATA (path) VALUES (N'/a/ab/abc/abcd/filename4)
INSERT INTO TESTDATA (path) VALUES (N'/a/ac/ac e/filename5)
TESTDATA 现在看起来像
|----------path-----------------|
/a
/a/ab/filename1
/a/ab/abc/filename2
/a/ab/abc/filename3
/a/ab/abc/abcd/filename4
/a/ac/ac e/filename5
但我需要它看起来像
filename--|--root--|--folder--|--subfolder--|--subsubfolder--|
----------|--------|----------|-------------|----------------|
filename1-|---a----|----ab----|
filename2-|---a----|----ab----|-----abc-----|
filename3-|---a----|----ab----|-----abc-----|
filename4-|---a----|----ab----|-----abc-----|-------abcd-----|
filename5-|---a----|----ac----|-----ac e----|
我该怎么办?
我想我应该做点什么SUBSTRING
,CHARINDEX
但我尝试了一千件事;永远做对了。SUBSTRING
当字符串包含空格时,它似乎停止在字符串中搜索。