Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Dúvida - Replace

Inseri o código: SELECT DESCRITOR REPLACE (DESCRITOR, '550 ml', '571 ml') from PRODUTOS WHERE TAMANHO = '550 ml'; conforme mencionado na aula. Porém, está retornando mensagem de erro Mensagem 102, Nível 15, Estado 1, Linha 15 Sintaxe incorreta próxima a 'DESCRITOR'. Só consegui utilizar o código removendo o 'DESCRITOR' do select: SELECT REPLACE (DESCRITOR, '550 ml', '571 ml') from PRODUTOS WHERE TAMANHO = '550 ml';, mas só apareceram os novos dados e não os dados a subtituir e os novos dados assim como demonstrado em aula.

Poderiam me ajudar?

4 respostas

Oi, Cindy, tudo bem?

Para atualizar as informações da nossa tabela de produtos utilizando o REPLACE, precisamos também utilizar a cláusula UPDATE. Quando não realizamos esta ação, receberemos um erro ou não alcançaremos o resultado esperado — uma vez que o SQL Server não conseguiu compreender por completo o comando.

Na videoaula "Alterando dados da tabela", foi utilizado o seguinte código para atualizar a tabela PRODUTOS, observe:

UPDATE PRODUTOS SET 
    DESCRITOR = replace(DESCRITOR, '350 ml', '550 ml'), 
    TAMANHO = '550 ml' 
WHERE TAMANHO = '350 ml';

Para uma melhor compreensão sobre este script SQL, observe os pontos a seguir:

  • Na coluna DESCRITOR, substituímos todas as ocorrências de "350 ml" por "550 ml";
  • Definimos o valor da coluna TAMANHO para "550 ml";
  • Essas atualizações são aplicadas apenas aos registros onde o valor da coluna TAMANHO é "350 ml".

Por fim, basta adicionar o UPDATE acima em seu projeto, modificá-lo (caso veja necessidade) e executá-lo. Espero ter ajudado, Cindy!

Um abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Se trata dessa mesma aula:

"Então, eu tenho todos os produtos que tem tamanho 350 ml. Se eu fizer a seleção usando a função replace, então: SELECT DESCRITOR replace (DESCRITOR, '350 ml', '550 ml') FROM PRODUTOS WHERE TAMANHO = '350 ml';'

Esse é o select que foi exibido em aula onde demonstrou uma coluna com a prévia do "antes" 350 ml e outra coluna com o "depois"

E é esse select que o SQL aponta o erro.

O select está no video [9:33].

Exemplo SQLAula

solução!

Oii, Cindy!

Muito obrigada por compartilhar essa informação comigo. Agora ficou mais claro onde se encontra a sua dúvida.

Como neste SELECT desejamos observar duas colunas com o "antes" e o "depois", precisamos demarcar estas colunas por meio da utilização de vírgulas.

Em nosso comando, as duas colunas serão representadas a partir destes trechos:

  • DESCRITOR;
  • replace(DESCRITOR, '550 ml', '571 ml').

Sabendo disso, basta adicionar uma vírgula após DESCRITOR, assim:

SELECT DESCRITOR, replace(DESCRITOR, '550 ml', '571 ml') FROM PRODUTOS WHERE TAMANHO = '550 ml';

Na transcrição da videoaula, estava realmente faltando uma vírgula, a qual está presente no SELECT construído pelo instrutor no vídeo.

Sinto muito que tenha passado por esse problema durante os seus estudos, a transcrição já foi corrigida e atualizada!

Qualquer dúvida, pode contar comigo.

Abraços :)