微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如何在SQLite中拆分逗号分隔值?

我想在sqlite数据库中拆分逗号分隔的String

示例:我的表中有一个Category列.

|Category                      |
|------------------------------|
|Auto,A,1234444                |
|Auto,B,2345444                |
|Electronincs,Computer,33443434|

我想从上面的字符串中只获取一个值.

value1: Auto
value2: A
value3: 1234444

我在Google上搜索了很多;我找到了一种使用Replace()和Trim()替换逗号的方法.但是,我想要一个更简单的方法.

sql中,提供了SubString().但在sqlite中,没有这样的功能.怎么解决

编辑:我检查了substr().但是,这个函数可以设置最大长度来获取字符串值,而我的字符串值没有固定长度.

解决方法

请在你的sqllite中创建这个函数,先传递2参数是seprator和第二个字符串.
CREATE FUNCTION [dbo].[Split]
(   
      @Sep char(1),@S varchar(512)
)
RETURNS TABLE 
AS
RETURN 
(
    WITH Pieces(pn,start,stop) AS (
      SELECT 1,1,CHARINDEX(@Sep,@S)
      UNION ALL
      SELECT pn + 1,stop + 1,@S,stop + 1)
      FROM Pieces
      WHERE stop > 0
    )
    SELECT pn,SUBSTR(@S,CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS S
    FROM Pieces
)

原文地址:https://www.jb51.cc/android/311816.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐