2013-03-08 58 views
25

我想将一些文本附加到表格每列中的每个单元格以充当该特定列的符号。例如说我的表如下(所有字段类型的字符改变):将文本附加到PostgreSQL中的列数据

 
name age location 
james 45  france 
simon 33  usa 
ben  76  china 

我想修改为:

 
name age location 
ajames b45  cfrance 
asimon b33  cusa 
aben  b76  cchina 

有没有人有任何建议,我怎么能做这个?

+3

原因是因为我知道我会用字母来象征数据,因为我将在表上执行某种数据挖掘以及我已经采用字符串的数据挖掘代码。 – 2013-03-13 14:53:46

回答

39

首先,你必须将你的年龄变成某种字符串。之后,你可以将这样的值(当然你必须为每个字段做):

update mytable set name = 'a' || name, age = 'b' || age; 

这将更新你的表里面的数据。如果你只希望输出的前缀,你可以用下面的办法:

select 'a' || name as name, 'b' || age as age from mytable; 

在这种情况下没有必要转换你的年龄的数据类型。

+0

谢谢,这似乎是我正在寻找! – 2013-03-13 14:54:03

+2

如果列的初始值为null,那么它不起作用:( – 2014-10-31 13:52:15

+0

“不工作”是什么意思?任何错误消息?如果您正在寻找不同的行为,您可以尝试使用concat函数:http:// www。 postgresql.org/docs/9.1/static/functions-string.html – 2014-11-04 09:16:06