pessoal alguem pode me dar um help no que esta errado no meu codigo?
Escreva o comando SQL que altere, simultaneamente, os valores da coluna “relacao” da tabela “dependente” observando as regras:
“Filho” altere para “Sobrinho”
“Filha” altere para “Sobrinha”
“Esposo” altere para “Irmão” e
"Esposa" altere para “Irmã”
MEU CODIGO:
UPDATE dependente
SET Filho = Sobrinho , Filha = Sobrinha ,Esposo = Irmão , Esposa = Irmã
WHERE relacao= Filho = Filho AND Filha = Filha AND Esposo = Esposo AND Esposa = Esposa;
Vamos por partes, o que você precisa fazer é, caso a coluna relação contenha o valor “Filho”, alterar este valor para "Sobrinho’ e, cada caso, de acordo com o que está ali no enunciado.
O script que você fez está todo errado.
Se você quiser dar update em todos os registros de uma coluna qualquer, faria isso
UPDATE table
SET column = 'ABC';
Então, todos os registros da tabela table terão valor ‘ABC’.
Se você quer condicionar esta alteração a todos os registros onde o valor de column seja ‘XYZ’, você faz
UPDATE table
SET column = 'ABC'
WHERE column = 'XYZ';
Entendeu?
Agora, nesta situação, você não pode só fazer como no exemplo. Precisa de uma única query que altere tudo, simultaneamente
Como você pode fazer?
Algo como um Update aplicando um case deve funcionar!
Só verifique a sintaxe do comando pois de cabeça não me recordo, mas deve ser algo como o que segue abaixo:
UPDATE dependente SET
relacao = (CASE relacao
WHEN 'Filho' THEN 'Sobrinho'
WHEN 'Filha' THEN 'Sobrinha'
WHEN 'Esposo' THEN 'Irmão'
WHEN 'Esposa' THEN 'Irmã'
ELSE 'Valor Indefinido' END);