46

我想在表格每一列的每个单元格中附加一些文本,作为该特定列的符号。例如说我的表如下(所有字段的类型字符都不同):

姓名 年龄 位置
詹姆斯 45 法国
西蒙 33 美国
ben 76 中国

我想将其修改为:

姓名 年龄 位置
ajames b45 法国
阿西蒙 b33 库萨
阿本 b76 中国

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

4

2 回答 2

80

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

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

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

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

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

于 2013-03-08T12:20:20.360 回答
1

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

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;
于 2019-08-02T06:49:31.717 回答