首页 > 数据库 > mysql教程 > 如何使用 CTE 在 SQLite 中有效拆分逗号分隔值?

如何使用 CTE 在 SQLite 中有效拆分逗号分隔值?

Mary-Kate Olsen
发布: 2025-01-04 03:12:11
原创
198 人浏览过

How Can I Efficiently Split Comma-Separated Values in SQLite Using CTEs?

在 SQLite 中拆分逗号分隔值

在 SQLite 中处理逗号分隔字符串的另一种方法是利用公共表表达式 (CTE) )。 CTE 提供了一种有效地将字符串分解为各个值的方法。

分步实施:

  1. 创建 CTE: 首先定义一个名为 split 的 CTE,它接受两个参数:用于保存单个值的 word 和用于存储逗号分隔的 csv字符串。
  2. 初始查询: 在 CTE 的初始查询中,您将指定 CSV 字符串,并连接一个附加逗号以指示其结尾。
  3. 递归查询: 递归查询使用 substr() 和 instr() 提取第一个单词,直到下一个逗号并更新 csv 以删除已解析的部分。重复此过程,直到不再遇到逗号。
  4. 选择结果: 最后,从 CTE 中选择单词列,不包括第一行和最后一行,它们代表原始 CSV 字符串和任何残空

示例:

以下代码示例用于说明 CTE 方法:

WITH split(word, csv) AS (
  SELECT '', 'Auto,A,1234444'||','
  UNION ALL SELECT
    substr(csv, 0, instr(csv, ',')),
    substr(csv, instr(csv, ',') + 1)
  FROM split
  WHERE csv != ''
) SELECT word FROM split 
WHERE word!='';
登录后复制

输出:

Auto
A
1234444
登录后复制

该方法提供了一种简洁高效的方式来分割逗号分隔的字符串在 SQLite 中,使您能够轻松访问各个值。

以上是如何使用 CTE 在 SQLite 中有效拆分逗号分隔值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板