escaping - 如何在 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 中转义分号吗?
解决方案
你其实不需要逃避;
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)
推荐阅读
- sql - 根据两列的组合选择count Distinct
- javascript - 如何在 Node.js 中找到我的浏览器的操作系统、架构类型等详细信息?
- ios - 应用因应用内购买而被拒绝
- linux-kernel - .config 和 kconfig 之间的区别
- node.js - 反应中的标签不显示适当的内容
- java - 尽管用户名和密码正确,但登录表单会抛出无效的用户名或密码
- ruby-on-rails - AWS Beanstalk - nginx 强制 SSL 配置更改后,Worker env 不处理后台作业
- google-sheets - 正常运行时脚本失败,但调试正常
- javascript - moment-timezone.js:476 Moment Timezone 没有亚洲/耶路撒冷的数据
- java - 控制器的弹簧启动基本路径,但不是应用程序上下文