Redshift 使用 \\ 卸载 SELECT 语句
Posted
技术标签:
【中文标题】Redshift 使用 \\\\ 卸载 SELECT 语句【英文标题】:Redshift Unload SELECT statement with \\Redshift 使用 \\ 卸载 SELECT 语句 【发布时间】:2019-09-11 00:08:17 【问题描述】:如果我在 AWS Redshift 卸载语句中有以下语句,语法如下:
SELECT \\'"id":"\\' || id || \\'",\\' || url || ltrim(home, \\'\\')
from users_details
\ 是什么意思?
python脚本中的完整语句是:
UNLOAD ('
SELECT \\'"id":"\\' || id || \\'",\\' || url || ltrim(home, \\'\\')
FROM users_details
')
TO AWS Bucket
ALLOWOVERWRITE
DELIMITER AS '\\t';
【问题讨论】:
【参考方案1】:作者似乎试图在查询中转义引号。
它使用\'
表示引用中的引用,第一个\
阻止Python 尝试解释第二个\
。
但是,UNLOAD - Amazon Redshift 中显示了一个更好的方法:
如果您的查询包含引号(例如将文字值括起来),请将文字放在两组单引号之间——您还必须将查询括在单引号之间:
('select * from venue where venuestate=''NV''')
【讨论】:
谢谢。但是,这从中提取数据的列是从家里来的,对吧? 该行将包含来自id
、url
和home
的值。以上是关于Redshift 使用 \\ 卸载 SELECT 语句的主要内容,如果未能解决你的问题,请参考以下文章