【发布时间】:2021-01-12 13:52:25
【问题描述】:
SQLite
我想将由“,”分隔的单行值转换为多行
示例:
单行
6,7,8,9,10,11,12,13,14,15,16
结果必须是:
多行
6
7
8
9
10
12
13
14
15
16
我尝试用 substr 函数来做,但得到了意想不到的结果
select
numbers.n,
substr(CbahiHSSpecialtyUnits.units,numbers.n,1)
from
numbers inner join CbahiHSSpecialtyUnits
on LENGTH(CbahiHSSpecialtyUnits.units)
- LENGTH(REPLACE(CbahiHSSpecialtyUnits.units, ',', ''))>=numbers.n-1
WHERE HsSubStandardID=22 and SpecialtyID=2 and numbers.n>0
order by numbers.n;
一件好事是我得到了正确的行数。但是应该分开的值是错误的。 请注意,数字表是我在这篇文章的帮助下为索引目的而创建的。 SQL split values to multiple rows
【问题讨论】:
-
看看你正在尝试做什么,这似乎是一个非常好的主意,似乎你可以为其他用户贡献对数据库设计的宝贵见解。我建议创建一个自我回答的问题,例如“为什么从列中的 CSV 更改为一对多关系设计?”。当然,假设那是您所做的/所做的。 (无意讽刺。如果您让我知道,您几乎可以保证在那里获得支持。)您甚至可以在此处链接为“我是如何在 SQLite 的帮助下做到的......”。
-
是的 Yunnosh,我已经发布了解决方案
标签: sqlite android-sqlite