首頁 > 資料庫 > mysql教程 > 如何使用 CTE 在 SQLite 中有效拆分逗號分隔值?

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

Mary-Kate Olsen
發布: 2025-01-04 03:12:11
原創
154 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板