Bom dia, professor.
No caso do exemplo foi alterado um campo de acordo com um outro campo, mas se eu desejasse alterar 2 campos com conteúdo de outros dois campos da tabela fonte, como seria?
Bom dia, professor.
No caso do exemplo foi alterado um campo de acordo com um outro campo, mas se eu desejasse alterar 2 campos com conteúdo de outros dois campos da tabela fonte, como seria?
Oi! Tudo certinho por aí?
Para atualizar mais de um campo, basta adicionar mais campos ao comando UPDATE.
Se você quiser atualizar mais de um campo, você pode simplesmente adicionar mais campos ao comando UPDATE
. Veja o exemplo abaixo:
UPDATE tabela_de_produtos tp
SET tp.NOME_DO_PRODUTO = (
SELECT tpf.NOME_DO_PRODUTO
FROM tabela_de_produtos_fonte tpf
WHERE tpf.CODIGO_DO_PRODUTO = tp.CODIGO_DO_PRODUTO
),
tp.PRECO_DE_LISTA = (
SELECT tpf.PRECO_DE_LISTA
FROM tabela_de_produtos_fonte tpf
WHERE tpf.CODIGO_DO_PRODUTO = tp.CODIGO_DO_PRODUTO
)
WHERE EXISTS (
SELECT 1
FROM tabela_de_produtos_fonte tpf
WHERE tpf.CODIGO_DO_PRODUTO = tp.CODIGO_DO_PRODUTO
AND tpf.EMBALAGEM = 'PET' -- Condição para embalagem PET
);
Utilizei, como exemplo, a TABELA_DE_PRODUTOS e TABELA_DE_PRODUTOS_FONTE. Digamos que o valor da embalagem PET mudou, e apenas esses produtos precisaram de alterações no valor.
Nesse caso, é possível adicionar um operador AND no filtro WHERE que compõe a subquery do EXISTS. Assim, o código do produto será checado como validação, e o tipo de embalagem fará o filtro necessário. São dois campos sendo checados.
Já para a alteração de mais campos na tabela que está recebendo essas mudanças, basta adicionar vírgulas separando as instruções, no UPDATE.
Espero ter ajudado!
Forte abraço.