Database
 sql >> Base de Dados >  >> RDS >> Database

Como aparar strings no SQL

Problema:


Você gostaria de remover caracteres específicos do início e do fim de uma string.

Exemplo:


Nosso banco de dados tem uma tabela chamada post com dados em duas colunas:id e title .
id título
1 ' Notícias sobre cães '
3 'Eurovisão 2019'
4 'Novo clima político'

Vamos cortar o título de cada post para remover o espaço desnecessário no início e no final.

Solução:


Usaremos o TRIM função. Aqui está a consulta que você escreveria:
SELECT TRIM( BOTH ' ' FROM title ) as new_title
FROM post;

Alternativamente, você pode usar a versão mais curta sem o BOTH palavra-chave; por padrão, TRIM tratará isso como uma operação AMBOS.
SELECT TRIM(' ' FROM title ) as new_title
FROM post;

Aqui está o resultado de ambas as consultas:
new_title
'Notícias sobre cães'
'Eurovisão 2019'
'Novo clima político'

Discussão:


Use o TRIM função se você quiser cortar uma string em uma tabela. Esta função permite remover um caractere específico do início ou do final de uma string, ou de ambas as extremidades. Esta função recebe os seguintes argumentos:
  • Uma palavra-chave especificando as extremidades das quais cortar (opcional—BOTH por padrão).
  • O caractere que você deseja cortar da string.
  • O FROM palavra-chave, seguida pelo nome da coluna de string a ser cortada.

No nosso exemplo, isso se parece com:
TRIM( BOTH ' ' FROM title )

Como mencionado acima, TRIM pode receber outras palavras-chave como seu primeiro argumento. Além de aparar de ambas as extremidades, permite remover um caractere apenas do final de uma string ou apenas do início:
  • TRAILING (remover do final)
  • LEADING (remover do início)

O exemplo abaixo remove o espaço no final de cada título (mas também pode ser usado para cortar o espaço no início se você usar o LEADING palavra-chave em vez):
SELECT TRIM( TRAILING ' ' FROM title ) as new_title
FROM post;

A consulta retorna o title coluna sem espaço no final. Observe que os espaços no início são deixados intocados.
new_title
‘Notícias sobre cães’
'Eurovisão 2019'
'Novo clima político'