MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como TRIM() funciona no MariaDB


No MariaDB, TRIM() é uma função de string interna que remove caracteres do início ou do fim de uma string.

Por padrão, ele remove os espaços à esquerda e à direita, mas você pode especificar qual caractere remover, bem como de qual lado você deseja que ele seja removido.

Sintaxe


O TRIM() A função pode ser usada da seguinte forma:
TRIM([remstr FROM] str) 

Ou:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) 

Onde str é a string da qual remover quaisquer espaços à direita e remstr é a string a ser removida.

Se remstr não for fornecido, então TRIM() remove espaços.

Exemplo


Segue um exemplo básico:
SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM('   Caribbean Island   ') AS "Trimmed"; 

Resultado:
+------------------------+------------------+| Não aparado | Aparado |+------------------------+------------------+| Ilha do Caribe | Ilha do Caribe |+------------------------+------------------+ 
Este exemplo usa a sintaxe mais básica. Tudo o que fizemos foi fornecer a corda para aparar. Não especificamos quais caracteres aparar e, portanto, todos os espaços foram aparados de ambos os lados da string.

Também podemos ver que o espaço dentro da string permanece intacto.

Os BOTH Argumento


Por padrão, TRIM() corta os dois lados da corda. No entanto, você pode especificar explicitamente BOTH se você desejar:
SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM(BOTH FROM '   Caribbean Island   ') AS "Trimmed"; 

Resultado:
+------------------------+------------------+| Não aparado | Aparado |+------------------------+------------------+| Ilha do Caribe | Ilha do Caribe |+------------------------+------------------+ 
Obtemos o mesmo resultado do exemplo anterior.

A LEADING Argumento


Especificando LEADING limita a operação de corte apenas ao início da string:
SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM(LEADING FROM '   Caribbean Island   ') AS "Trimmed"; 

Resultado:
+------------------------+--------------------- +| Não aparado | Aparado |+------------------------+---------------------+ | Ilha do Caribe | Ilha do Caribe |+------------------------+--------------------- +

Podemos ver que ainda existem espaços no lado direito da string aparada. Apenas a parte esquerda foi cortada.

A TRAILING Argumento


Especificando TRAILING limita a operação de corte apenas ao início da string:
SELECT 
    '   Caribbean Island   ' AS "Untrimmed",
    TRIM(TRAILING FROM '   Caribbean Island   ') AS "Trimmed"; 

Resultado:
+------------------------+--------------------- +| Não aparado | Aparado |+------------------------+---------------------+ | Ilha do Caribe | Ilha do Caribe |+------------------------+--------------------- +

Desta vez, apenas a parte direita foi cortada. Ainda existem espaços no lado esquerdo da string aparada.

Especifique uma string para aparar


Aqui está um exemplo de especificação de qual caractere cortar:
SELECT 
    '...mountain...' AS "Untrimmed",
    TRIM('.' FROM '...mountain...') AS "Trimmed"; 

Resultado:
+----------------+----------+| Não aparado | Aparado |+----------------+----------+| ...montanha... | montanha |+----------------+----------+

Não precisa ser um único personagem. Você pode especificar qualquer string para aparar:
SELECT 
    TRIM('.' FROM '.+.mountain.+.') AS "1",
    TRIM('.+' FROM '.+.mountain.+.') AS "2",
    TRIM('+.' FROM '.+.mountain.+.') AS "3",
    TRIM('.+.' FROM '.+.mountain.+.') AS "4"; 

Resultado:
+--------------+--------------+--------------+- ---------+| 1 | 2 | 3 | 4 |+--------------+--------------+--------------+-- --------+| +.montanha.+ | .montanha.+. | .+.montanha. | montanha |+--------------+--------------+--------------+-- --------+

Você pode até cortar parte da palavra se quiser:
SELECT TRIM('moun' FROM 'mountain'); 

Resultado:
+------------------------------+| TRIM('moun' FROM 'mountain') |+------------------------------+| tain |+------------------------------+

Também podemos usar o BOTH , LEADING e TRAILING argumentos ao especificar a string a ser aparada.

Exemplo:
SELECT 
    TRIM(BOTH '.' FROM '...mountain...') AS "Both",
    TRIM(LEADING '.' FROM '...mountain...') AS "Leading",
    TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing"; 

Resultado:
+----------+-------------+------------+| Ambos | Líder | À direita |+----------+-------------+------------+| montanha | montanha... | ...montanha |+----------+-------------+-------------+

Argumentos nulos


Se for dado um null argumento, o resultado é null :
SELECT TRIM(null); 

Resultado:
+------------+| TRIM(null) |+------------+| NULL |+------------+

Modo Oráculo


Quando não executando no modo Oracle, se o resultado estiver vazio (ou seja, tiver um comprimento de zero), o resultado será uma string vazia.

No entanto, ao executar no modo Oracle, o resultado é null .

Aqui está no modo padrão (ou seja, não no modo Oracle):
SELECT TRIM(''); 

Resultado:
+----------+| TRIM('') |+----------+| |+----------+

Agora vamos mudar para o modo Oracle:
SET SQL_MODE=ORACLE; 

E execute o código novamente:
SELECT TRIM(''); 

Resultado:
+----------+| TRIM('') |+----------+| NULL |+----------+

Há também uma maneira alternativa de fazer isso. Em vez de mudar para o modo Oracle, você pode usar TRIM_ORACLE() como o nome da função.

Vamos voltar ao modo padrão:
SET SQL_MODE=DEFAULT; 

E agora execute TRIM_ORACLE() :
SELECT TRIM_ORACLE(''); 

Resultado:
+-----------------+| TRIM_ORACLE('') |+-----------------+| NULO |+-----------------+

Argumento ausente


Chamando TRIM() sem um argumento resulta em um erro:
SELECT TRIM(); 

Resultado:
ERRO 1064 (42000):Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MariaDB para a sintaxe correta para usar perto de ')' na linha 1