2015-09-16 44 views
0

我想创建一个字符串,我可以在查询中使用IN语句。我目前的查询设置为使用string_agg语句输出一个字符串。输出看起来像XX”, 'XY', 'XZ',XBPostgreSQL添加一个字符串输出的前端和结尾

查询看起来像

select string_agg(distinct column_row, ''',''') from new_table; 

此输出像上面....... xx', 'xy', 'xz', 'xb的字符串。我想找到一种方法来添加一个额外的撇号到字符串的开头和字符串的末尾,所以它看起来像'xx', 'xy', 'xz', 'xb'

有没有一种方法,我可以使用concat添加'到整个字符串的开始和结尾,以便字符串最终看起来像'xx','xy','xz',xb'?因为我不认为我可以在IN语句中使用一个字符串,所有字符都没有撇号。

+1

为什么不离开聚集了并在'IN'条件下直接使用该语句? '在哪里(选择...)' –

回答

0

尝试:

select '''' || col || '''' 
    from (select string_agg(distinct column_row, ''',''') col 
      from new_table) newt; 

见这里的SQLFiddle

没有子查询也将工作:

select '''' || string_agg(distinct col, ''',''') || '''' col 
    from test 

看到它在这里SQLFiddle 2

相关问题