Concat две строки в запросе на обновление для обновления столбца - PullRequest
0 голосов
/ 30 августа 2018

Я хочу обновить столбец, объединив две строки, но postgresql (версия 10) выдает ошибку, что это невозможно.

Это результаты запроса на выборку:

select game_id, distro, kernel, de, os_bit, 'ubuntu ' || (regexp_matches(distro, '(x|k)ubuntu ((16|18|17)(\.04|10)(\.\d)).+'))[2] from games 
where distro ~ 'ubuntu (16|18|17)(\.04|10)(\.\d)' and distro !~  '^ubuntu (16|18|17)(\.04|10)(\.\d)$' 

enter image description here

Я хочу обновить столбец дистрибутива, и он должен содержать строку, которая на рисунке показана под столбцом ?column?, но когда я использую следующий запрос, возникает ошибка (функции возврата набора не разрешены в UPDATE ) происходит:

update games set distro = concat('ubuntu ', (regexp_matches(distro, '(x|k)ubuntu ((16|18|17)(\.04|10)(\.\d)).+'))[2]) where distro ~ 'ubuntu (16|18|17)(\.04|10)(\.\d)' and distro !~  '^ubuntu (16|18|17)(\.04|10)(\.\d)$' 
...