将文本附加到PostgreSQL中的列数据

时间:2013-03-08 12:14:07

标签: 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

有没有人对我如何做到这一点有任何建议?

2 个答案:

答案 0 :(得分:53)

首先,您必须将您的年龄转换为某种字符串。之后,您可以像这样转换值(当然,您必须为每个字段执行此操作):

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

这会更新表格中的数据。如果您只想要输出前缀,则可以使用以下方法:

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

在这种情况下,无需转换年龄数据类型。

答案 1 :(得分:0)

可接受的答案不是处理空值和空格。所以我给了这个答案。如果能帮助某人,那将是我的荣幸。

update "public"."mytable" set 
"name"= case when "name" is null or trim("name")='' then null else 'a' || "name" end,
"age"= case when "age" is null or trim("age")='' then null else 'b' || "age" end,
"location"= case when "location" is null or trim("location")='' then null else 'c' || "location" end;