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 explicitamenteBOTH
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
EspecificandoLEADING
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
EspecificandoTRAILING
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 oBOTH
,LEADING
eTRAILING
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 umnull
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 usarTRIM_ORACLE()
como o nome da função.
Vamos voltar ao modo padrão:
SET SQL_MODE=DEFAULT;
E agora executeTRIM_ORACLE()
:
SELECT TRIM_ORACLE('');
Resultado:
+-----------------+| TRIM_ORACLE('') |+-----------------+| NULO |+-----------------+Argumento ausente
ChamandoTRIM()
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