2017-03-10 12 views
2

我有一個表格,其中列location中有文件的文件夾,例如, '/home/ubuntu/test'name列中有文件名,例如'test1.png'連接兩列,並用postgresql中的結果替換其中一列

我想用完整路徑替換location列,例如, '/home/ubuntu/test/test.png'

我嘗試這樣做:

UPDATE experiment_11.microscope_image_files 
SET location=(SELECT concat_ws('/', location::text, name::text) 
FROM experiment_11.microscope_image_files); 

,但我得到了以下錯誤:

ERROR: more than one row returned by a subquery used as an expression

+0

嘗試'UPDATE experiment_11.microscope_image_files SET位置= concat_ws('/',位置::文本,名稱::文本)' – barbsan

回答

1

你不想子查詢。相反,只使用:

UPDATE experiment_11.microscope_image_files SET 
location = location || '/' || name 

的錯誤是由子查詢返回超過1行造成的(實際上它返回所有行),但作爲一個表達式中使用時(像你一樣)它必須返回0或1行。

+0

酷!謝謝!它幫助! –

相關問題