我想在表格每一列的每个单元格中附加一些文本,作为该特定列的符号。例如说我的表如下(所有字段的类型字符都不同):
姓名 年龄 位置 詹姆斯 45 法国 西蒙 33 美国 ben 76 中国
我想将其修改为:
姓名 年龄 位置 ajames b45 法国 阿西蒙 b33 库萨 阿本 b76 中国
有人对我如何做到这一点有任何建议吗?
我想在表格每一列的每个单元格中附加一些文本,作为该特定列的符号。例如说我的表如下(所有字段的类型字符都不同):
姓名 年龄 位置 詹姆斯 45 法国 西蒙 33 美国 ben 76 中国
我想将其修改为:
姓名 年龄 位置 ajames b45 法国 阿西蒙 b33 库萨 阿本 b76 中国
有人对我如何做到这一点有任何建议吗?
首先,您必须将您的年龄转换为某种字符串。之后,您可以像这样转换值(当然,您必须为每个字段执行此操作):
update mytable set name = 'a' || name, age = 'b' || age;
这会更新表中的数据。如果您只希望输出带有前缀,则可以使用以下方法:
select 'a' || name as name, 'b' || age as age from mytable;
在这种情况下,无需转换您的年龄数据类型。
接受的答案不是处理空值和空格。所以我给出了这个答案。如果它对某人有帮助,那将是我的荣幸。
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;