我正在尝试创建一个文本字符串,以便以后在半动态交叉表函数中使用。
只要我不使用格式“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,
答案 0 :(得分:3)
在格式字符串中写下"numeric(10,2)"
而不是numeric(10,2)
。
to_char
模板中允许使用普通文本,并按字面输出。您可以将子字符串放在双引号中,以强制它被解释为文字文本,即使它包含模式关键字。