创建文本字符串输出错误(postgresql)

时间:2016-08-01 07:12:29

标签: string postgresql crosstab

我正在尝试创建一个文本字符串,以便以后在半动态交叉表函数中使用。

只要我不使用格式“numeric(x,x)

,一切都很好
SELECT concat('sign varchar,',(SELECT string_agg(col,',') 
FROM   (SELECT to_char(generate_series('2016-01-01','2016-01-15', interval '1 week'),'\"iyyy-iw\"  numeric(10,2)')col )cols))

输出很奇怪。字母“i”被替换为数字。

sign varchar,"2015-53" numer5c(10,2),"2016-01" numer6c(10,2),"2016-02" numer6c(10,2)

如何使用“numeric(x,x)”作为列格式获取正确的文本字符串?

Sqlfiddle:http://sqlfiddle.com/#!15/9eecb7db59d16c80417c72d1e1f4fbf1/10313

TIA,

1 个答案:

答案 0 :(得分:3)

在格式字符串中写下"numeric(10,2)"而不是numeric(10,2)

The fine manual说:

  

to_char模板中允许使用普通文本,并按字面输出。您可以将子字符串放在双引号中,以强制它被解释为文字文本,即使它包含模式关键字。