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答案? –
修復您的架構,如果可以的話。將分隔數據存儲在列中幾乎從來都不是一個好主意,而且你找到了一個原因。 –