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

标签 sql string sqlite split

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

输入字符串:

C:\Users\fidel\Desktop\Temp

并让查询返回这些:

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

换句话说,我想将文件路径拆分为其组成路径。有没有办法在纯 SQLite 中执行此操作?

最佳答案

这是可能的递归 common table expression :

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 = '\';

(你没有要求一个合理的方式。)

关于sql - 使用纯 SQLite 将字符串拆分为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34659643/

相关文章:

mysql - 如何在表中仅插入编辑后的值

sql - 为什么alter 命令被称为DDL 而不是DML?

将int转换为带小数的字符串

ruby - `exec' : string contains null byte (ArgumentError)

java - 为什么像 Java 这样的语言区分字符串和字符,而其他语言则不区分?

java - 创建表 android_metadata 失败

Mysql 表连接本身

sql - "IN"函数有反面吗?

sql - 将具有多个表的 SQLite 连接转换为 PostgreSQL

c# - 使用带有 LIKE 运算符的 SQLiteParameter 的 SQLite.NET 性能