我有一个表,在列location
中有文件的文件夹,例如'/home/ubuntu/test'
和name
列中有文件名,例如'test1.png'
。
我想用完整路径替换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);
但是我收到以下错误:
错误:用作表达式
的子查询返回多行
答案 0 :(得分:1)
您不需要子查询。相反,只使用:
UPDATE experiment_11.microscope_image_files SET
location = location || '/' || name
错误是由子查询返回超过1行(实际上它返回所有行)引起的,但是当用作表达式时(就像你做的那样)它必须返回0或1行。