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

如何在 SQLite 中有效地拆分逗号分隔值?

Linda Hamilton
Linda Hamilton原创
2025-01-03 11:00:39914浏览

How to Efficiently Split Comma-Separated Values in SQLite?

在 SQLite 中拆分逗号分隔值

处理包含逗号分隔值的数据时,可能需要提取各个组件。在 SQLite 中,使用 Replace() 和 Trim() 等函数来实现这一点可能很麻烦。这是使用通用表表达式 (CTE) 的更有效方法。

解决方案:

第 1 步: 定义 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 和 csv
  • UNION ALL:用逗号递归拆分 csv 值。
  • WHERE csv != '':当没有更多值可供拆分时终止递归。

第 2 步: 提取值

SELECT word FROM split WHERE word!='';
  • 过滤掉第一行和最后一行(虚拟/终端值)。
  • 将分割值提取到单词列中。

输出:

Auto
A
1234444

这个解决方案提供了一种简单有效的方法来在 SQLite 中分割逗号分隔值,即使字符串长度不同。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn