2016-10-27 12 views
1

Я хочу, чтобы обновить столбец BRCD_NEW в таблицах ветвей с условием, нанесенным на другую колонку BRCD в той же таблице, вот мой код, но он возвращает ошибкуОбновление столбцов в одной таблице

однорядные подзапрос возвращает более чем в одной строке

update branches set brcd_new=(
select 
case 
when BRCD between '5000' and '5999' then CONCAT('PK001',BRCD) 
else CONCAT('PK002',BRCD) 
end 
from branches); 

ответ

1

Вам не нужно подзапрос, чтобы добиться того, что вы делаете. Используйте CASE заявление, чтобы получить значение, которое нужно и назначить в свою колонку в SET заявлении:

update branches 
set brcd_new = 
    case 
     when BRCD between '5000' and '5999' then CONCAT('PK001',BRCD) 
     else CONCAT('PK002',BRCD) 
    end 
-- WHERE <your filters (if needed)> 
+0

Thanku @dotnetom :) – KeenLearner

Смежные вопросы