任何人都可以帮我解决这个问题.在表格中,我现在有这样的数据.

如何将具有分隔符TTBFA-TTBFB-TTBFC-TTBFD的列节点拆分为4行,其他列相同.
加州地区GAXAEB 102,520,000 18.71 4 8/30/2014
加州地区TTBFA 92,160,000 23.33 3 9/13/2014
加州地区TTBFB 92,160,000 23.33 3 9/13/2014
加州地区TTBFC 92,160,000 23.33 3 9/13/2014
加州地区TTBFD 92,160,000 23.33 3 9/13/2014
列NODES的值不总是5个字符,可能如下所示

提前致谢
INSTR函数通常意味着你正在运行TD14 +.
还有STRTOK功能,更好地使用它而不是SUBSTRING(INSTR).
而不是最多15个UNION ALL,您也可以交叉连接到带有数字的表:
SELECT region_name, STRTOK(nodes, '-', i) AS x
FROM table
CROSS JOIN
( -- better don't use sys_calendar.CALENDAR as there are no statistics on day_of_calendar
SELECT day_of_calendar AS i
FROM sys_calendar.CALENDAR
WHERE i <= 15
) AS dt
WHERE x IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
您也可以在TD14中使用STRTOK_SPLIT_TO_TABLE:
SELECT *
FROM table AS t1
JOIN
(
SELECT *
FROM TABLE (STRTOK_SPLIT_TO_TABLE(table.division, table.nodes, '-')
RETURNS (division VARCHAR(30) CHARACTER SET UNICODE
,tokennum INTEGER
,token VARCHAR(30) CHARACTER SET UNICODE)
) AS dt
) AS t2
ON t1.division = t2.division
Run Code Online (Sandbox Code Playgroud)
希望这是用于数据清理而不是日常使用......
| 归档时间: |
|
| 查看次数: |
5859 次 |
| 最近记录: |