使用string_to_array()拆分字符串时如何为返回结果添加单引号
问题解答
你可以直接对unnest返回的元素拼接单引号实现需求,PostgreSQL 中用两个连续单引号表示转义后的单引号字符,推荐使用更简洁的写法如下:
WITH a as (SELECT '''' || unnest(string_to_array(animals, ',')) || '''' as "pets" FROM all_animals where id = 100) SELECT * FROM a
如果要求拼接逻辑必须在string_to_array相关环节实现,也可以先对原字符串做替换处理再拆分,效果一致:
WITH a as (SELECT unnest(string_to_array('''' || replace(animals, ',', ''',''') || '''', ',')) as "pets" FROM all_animals where id = 100) SELECT * FROM a
两种写法均可得到你需要的带单引号的输出结果,第一种写法可读性和执行效率更高,优先推荐。
内容的提问来源于stack exchange,提问作者ArthurJ
相关产品推荐
相关产品推荐

