如何在psql命令行查询中转义单引号?

11

我搜了很多但是...

在psql的命令行查询中如何转义单引号?

psql -t -A -F $'\t' postgresql://zzzz:5432/casedb -U qqqq -c 'select id,ext_ids ->> 'qwe' as qwe from data ORDER BY qwe' > /jdata/qwe.tab

出错结果

ERROR:  column "qwe" does not exist
LINE 1: select id,ext_ids ->> qwe as qwe from data...
2个回答

12
在Postgres中,您可以使用美元引用字符串:
select id,ext_ids ->> $$qwe$$ as qwe from data ORDER BY qwe;
-- or
select id,ext_ids ->> $anything$qwe$anything$ as qwe from data ORDER BY qwe;

4

你可以在shell中使用双引号 (") 进行引用,在SQL语句中使用单引号 (') 进行引用:

psql -t -A -F $'\t' postgresql://zzzz:5432/casedb -U qqqq -c "select id,ext_ids ->> 'qwe' as qwe from data ORDER BY qwe" > /jdata/qwe.tab
# Here ------------------------------------------------------^---------------------------------------------------------^

2
在shell命令行中使用双引号时,必须小心,因为其中的任何特殊字符,如'$'、'*'和'?'都会被评估。 - Robert Casey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接