如何通过 teradata 中的分隔符标记字符串
How to tokenize string by delimiters in teradata
我有一个存储为 [val1, val2, val3] 形式的字符串的值列表,有没有办法标记这个字符串并在 Teradata 15 中以 的样式堆叠这些值?例如
select <magic function>(values,'[ , ]')
returns
col
------
Val1
Val2
Val3
这主要取决于实际值和分隔符。
如果任何字符 ',[] '
被视为分隔符:
SELECT *
FROM
TABLE (STRTOK_SPLIT_TO_TABLE(1, '[val1, val2, val3]', ',[] ')
RETURNS (keycol INT, tokennum INTEGER, token VARCHAR(100) CHARACTER SET UNICODE)) AS dt
对于像您的 '['
、']'
、', '
这样的多列分隔符,使用 REGEXP_SPLIT_TO_TABLE:
可能更好
SELECT *
FROM
TABLE (REGEXP_SPLIT_TO_TABLE(1, '[val1, val2, val3]', '(\[|\]|, )', 'i')
RETURNS (keycol INT, tokennum INTEGER, token VARCHAR(100) CHARACTER SET UNICODE)) AS dt
我有一个存储为 [val1, val2, val3] 形式的字符串的值列表,有没有办法标记这个字符串并在 Teradata 15 中以
select <magic function>(values,'[ , ]')
returns
col
------
Val1
Val2
Val3
这主要取决于实际值和分隔符。
如果任何字符 ',[] '
被视为分隔符:
SELECT *
FROM
TABLE (STRTOK_SPLIT_TO_TABLE(1, '[val1, val2, val3]', ',[] ')
RETURNS (keycol INT, tokennum INTEGER, token VARCHAR(100) CHARACTER SET UNICODE)) AS dt
对于像您的 '['
、']'
、', '
这样的多列分隔符,使用 REGEXP_SPLIT_TO_TABLE:
SELECT *
FROM
TABLE (REGEXP_SPLIT_TO_TABLE(1, '[val1, val2, val3]', '(\[|\]|, )', 'i')
RETURNS (keycol INT, tokennum INTEGER, token VARCHAR(100) CHARACTER SET UNICODE)) AS dt