一尘不染

使用纯SQLite将字符串拆分为行

sql

使用SQLite,我想按以下方式拆分字符串。

输入字符串:

C:\Users\fidel\Desktop\Temp

并让查询返回以下

C:\
C:\Users\
C:\Users\fidel\
C:\Users\fidel\Desktop\
C:\Users\fidel\Desktop\Temp

换句话说,我想将文件路径拆分为其组成路径。有没有办法在纯SQLite中做到这一点?


阅读 719

收藏
2021-03-10

共1个答案

一尘不染

这可以通过递归公用表表达式来实现

WITH RECURSIVE split(s, last, rest) AS (
  VALUES('', '', 'C:\Users\fidel\Desktop\Temp')
  UNION ALL
  SELECT s || substr(rest, 1, 1),
         substr(rest, 1, 1),
         substr(rest, 2)
  FROM split
  WHERE rest <> ''
)
SELECT s
FROM split
WHERE rest = ''
   OR last = '\';

(您没有要求 合理的 方法。)

2021-03-10