0
A
回答
1
不知道你所使用的RDBMS,但我得到这个在SQL Server,MySQL和SQLite的工作。这使得假设只有三个项目需要从字符串中拆分出来
重申@Joel Coehoorn提到的内容。给出大量数据时,这可能非常缓慢。最好是改变表的模式,并具有数据分离之前在表
SQL Server版本
select t.id, t.methods,
SUBSTRING(t.methods, 1, CHARINDEX('|', t.methods)-1) as method1,
SUBSTRING(t.methods, CHARINDEX('|', t.methods)+1, CHARINDEX('|', t.methods, CHARINDEX('|', t.methods)+1)-CHARINDEX('|', t.methods)-1) as method2,
SUBSTRING(t.methods, CHARINDEX('|', t.methods, CHARINDEX('|', t.methods)+1)+1,len(t.methods)) as method3
from TestTable t
MySQL版本
select t.id, t.methods,
SUBSTRING(t.methods, 1, LOCATE('|', t.methods)-1) as method1,
SUBSTRING(t.methods, LOCATE('|', t.methods)+1, LOCATE('|', t.methods, LOCATE('|', t.methods)+1)-LOCATE('|', t.methods)-1) as method2,
SUBSTRING(t.methods, LOCATE('|', t.methods, LOCATE('|', t.methods)+1)+1) as method3
from TestTable t
不断插入SQLite
select
SUBSTR(t.methods, 1, INSTR(t.methods, '|')-1) as method1,
SUBSTR(t.methods, INSTR(t.methods, '|')+1, INSTR(SUBSTR(t.methods, INSTR(t.methods, '|')+1), '|')-1) as method2,
SUBSTR(t.methods, INSTR(SUBSTR(t.methods, INSTR(t.methods, '|')+1), '|')+ INSTR(t.methods, '|')+1) as method3
from TestTable t
相关问题
- 1. 将数据从一列分成三列
- 2. 根据分隔符拆分列值?
- 3. 根据ID列分隔列
- 4. 如何根据分隔符将一行文本分成多列';'在Unix中?
- 5. 将字符串列表分隔成列
- 6. 我想使用分隔符(逗号)将一列分成几列
- 7. 如何根据分隔符将字符串分成两部分?
- 8. 根据列分隔记录
- 9. 将一列分隔成多列
- 10. 将mysql列拆分成两列,并带有分隔符
- 11. 通过分隔符将列分成多列
- 12. 分裂阵列分隔成字符串
- 13. 列分隔符
- 14. 将列分隔为三列,分组编号为
- 15. 将一个字符串分解成三个部分不具有分隔符(JAVA)
- 16. TSQL:根据值将一列分成两部分
- 17. 将字符串中的字符分隔成一个列表(python)
- 18. 拆分列分隔符R
- 19. 根据字符将字符串分解成不同的列
- 20. 将一列分成多列
- 21. 在Postgres中用分隔符分隔列
- 22. 根据其中一列的分隔值高效地更新列
- 23. 将列表值分割成逗号分隔的字符串
- 24. 在数据框中以多字符分隔符分隔列
- 25. 如何将列数据连接成由“,”分隔的字符串?
- 26. R根据另一列拆分一列
- 27. SQL将一列分为三列
- 28. 将列分隔的单元格分成与父列对应的一列?
- 29. 如何根据条件将列分成两列并在两列分开显示?
- 30. 使用字符分隔符分割列
用你正在使用的数据库标记你的问题。 –
这个_might_的答案取决于你正在使用的RDBMS。或者你想要一个“纯粹的”ANSI SQL答案? –
修复您的架构,如果可以的话。将分隔数据存储在列中几乎从来都不是一个好主意,而且你找到了一个原因。 –