2013-03-08 46 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