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

问题描述:

我GOOGLE了很多,但..如何在psql的命令行查询中转义单引号?

如何在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... 

在Postgres里你可以使用dollar-quoted strings

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; 

你可以只使用了壳报价为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 ------------------------------------------------------^---------------------------------------------------------^