首页 > 解决方案 > 如何在 Presto 中转义分号

问题描述

数据表为testtable

col 

x;y

p;q

m;n

我试过了:

SELECT split(col,'\;') FROM testtable
SELECT split(col,'\\;') FROM testtable
SELECT split(col,'\;' ESCAPE '\') FROM testtable

拆分col,但上面的代码都没有在 Presto 中工作。有人知道如何在 Presto 中转义分号吗?

标签: escapingpresto

解决方案


你其实不需要逃避;

presto> SELECT split('aaa;bbb',';');
   _col0
------------
 [aaa, bbb]
(1 row)

presto> SELECT split('aaa;bbb',';')[1], split('aaa;bbb',';')[2];
 _col0 | _col1
-------+-------
 aaa   | bbb
(1 row)

如果您的意图是将每个条目作为行,您将需要类似的东西(未经测试)

SELECT split_values
FROM testtable
CROSS JOIN UNNEST(SPLIT(col,';')) AS t (split_values)

推荐阅读