Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Como utilizar o Trim para atualização de dados?

As informações sobre a função TRIM estão um pouco confusas. No curso é dito: "Funcionalidade: A função TRIM remove espaços (ou outro conjunto especificado de caracteres) do início e do fim de uma string.". Aqui mesmo no fórum é falado sobre a função TRIM remover apenas espaços. Acontece que a Luri já fala sobre a remoção também de caracteres específicos no início ou no fim da string. Eu gostaria de saber como eu poderia utilizar o Trim para atualizar os dados, pois a sugestão da Luri não está dando certo pelo SQLite:

UPDATE tabela_teste set nome_teste = TRIM('-', nome_teste)

Em vez de atualizar os dados sem os caracteres destacados, são removidos todos os outros caracteres e deixados apenas os '-'. Eu encontrei solução apenas com o comando Replace.

1 resposta
solução!

Olá!

A função TRIM no SQLite é usada para remover caracteres específicos do início e do final de uma string. Por padrão, ela remove espaços em branco, mas você pode especificar outros caracteres.

A sua confusão está no uso da função no comando SQL. Vamos esclarecer o funcionamento e corrigir o exemplo:

1. Sintaxe do TRIM no SQLite

A sintaxe correta da função TRIM é:

trim(string, character)

Onde String é o texto que você quer limpar

e character é o caractere que deseja remover do início ou final, se não for colocado, o SQL assume que seja " "[espaço vazio]

Ex.:

SELECT trim('400USD','USD') amount;

Resultado:

amount
------
400

2. Por que o seu comando não funcionou?

No comando que você usou:

UPDATE tabela_teste SET nome_teste = TRIM('-', nome_teste);

O problema é que ele está removendo tudo que não seja o caractere especificado porque o parâmetro '-' está sendo interpretado como uma "lista" de caracteres a serem mantidos.

Por isso, o resultado final só contém os caracteres -, removendo todos os outros.

3. Como corrigir?

Para remover apenas os - do início e do fim da string e atualizar os dados corretamente:

UPDATE tabela_teste SET nome_teste = TRIM(nome_teste, '-');

4. Sua Solução: Usar REPLACE

Se você quer remover o caractere - de toda a string (não apenas do início e do fim), o REPLACE é a abordagem correta.

Se ainda estiver com dúvidas olha a documentação: https://www.sqlitetutorial.net/sqlite-functions/sqlite-trim/