I MariaDB, TRIM()
er en indbygget strengfunktion, der fjerner tegn fra starten eller slutningen af en streng.
Som standard fjerner den førende og efterfølgende mellemrum, men du kan angive, hvilket tegn, der skal fjernes, samt hvilken side/sider du vil have det fjernet fra.
Syntaks
TRIM()
funktion kan bruges som følger:
TRIM([remstr FROM] str)
Eller:
TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str)
Hvor str
er strengen til at fjerne eventuelle efterfølgende mellemrum fra, og remstr
er strengen, der skal fjernes.
Hvis remstr
ikke er angivet, så TRIM()
fjerner mellemrum.
Eksempel
Her er et grundlæggende eksempel:
SELECT
' Caribbean Island ' AS "Untrimmed",
TRIM(' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+------------------------+| Ubeskåret | Trimmet |+------------------------+------------------------+| Caribiske Ø | Caribbean Island |+------------------------+-----------------+Dette eksempel bruger den mest grundlæggende syntaks. Det eneste, vi gjorde, var at sørge for strengen til at trimme. Vi specificerede ikke hvilke tegn, der skulle trimmes, og derfor blev alle mellemrum trimmet fra begge sider af strengen.
Vi kan også se, at rummet i strengen forbliver intakt.
BOTH
ArgumentSom standard er
TRIM()
trimmer begge sider af snoren. Du kan dog udtrykkeligt angiveBOTH
hvis du ønsker det:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(BOTH FROM ' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+------------------------+| Ubeskåret | Trimmet |+------------------------+------------------------+| Caribiske Ø | Caribbean Island |+------------------------+-----------------+Vi får det samme resultat som det foregående eksempel.
Den
LEADING
ArgumentAngivelse af
LEADING
begrænser trimningsoperationen til kun begyndelsen af strengen:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(LEADING FROM ' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+--------------------- +| Ubeskåret | Trimmet |+------------------------+---------------------+ | Caribiske Ø | Caribbean Island |+------------------------+-------------------------------- +Vi kan se, at der stadig findes mellemrum til højre for den trimmede streng. Kun den venstre del blev trimmet.
TRAILING
ArgumentAngivelse af
TRAILING
begrænser trimningsoperationen til kun begyndelsen af strengen:SELECT ' Caribbean Island ' AS "Untrimmed", TRIM(TRAILING FROM ' Caribbean Island ') AS "Trimmed";
Resultat:
+------------------------+--------------------- +| Ubeskåret | Trimmet |+------------------------+---------------------+ | Caribiske Ø | Caribbean Island |+------------------------+-------------------------------- +Denne gang blev kun den højre del trimmet. Der er stadig mellemrum til venstre for den trimmede streng.
Angiv en streng, der skal trimmes
Her er et eksempel på at angive, hvilket tegn der skal trimmes:
SELECT '...mountain...' AS "Untrimmed", TRIM('.' FROM '...mountain...') AS "Trimmed";
Resultat:
+----------------+--------+| Ubeskåret | Trimmet |+----------------+--------+| ...bjerg... | bjerg |+----------------+----------+Det behøver ikke at være en enkelt karakter. Du kan angive en hvilken som helst streng, der skal trimmes:
SELECT TRIM('.' FROM '.+.mountain.+.') AS "1", TRIM('.+' FROM '.+.mountain.+.') AS "2", TRIM('+.' FROM '.+.mountain.+.') AS "3", TRIM('.+.' FROM '.+.mountain.+.') AS "4";
Resultat:
+--------------+--------------+--------------+- ----------+| 1 | 2 | 3 | 4 |+--------------------------------------- --------+| +.bjerg.+ | .bjerg.+. | .+.bjerg. | bjerg |+--------------+--------------+--------------+-- --------+Du kan endda trimme en del af ordet, hvis du vil:
SELECT TRIM('moun' FROM 'mountain');
Resultat:
+--------------------------------------+| TRIM('bjerg' FRA 'bjerg') |+------------------------------------+| tain |+--------------------------------------+Vi kan også bruge
BOTH
,LEADING
ogTRAILING
argumenter, når du angiver den streng, der skal trimmes.Eksempel:
SELECT TRIM(BOTH '.' FROM '...mountain...') AS "Both", TRIM(LEADING '.' FROM '...mountain...') AS "Leading", TRIM(TRAILING '.' FROM '...mountain...') AS "Trailaing";
Resultat:
+----------+-------------+------------+| Begge | Førende | Trailaing |+-----------+-------------+------------+| bjerg | bjerg... | ...bjerg |+----------+-------------+------------+Nul-argumenter
Hvis der gives en
null
argument, er resultatetnull
:SELECT TRIM(null);
Resultat:
+-------------+| TRIM(nul) |+------------+| NULL |+------------+Oracle-tilstand
Når ikke kører i Oracle-tilstand, hvis resultatet er tomt (dvs. det har en længde på nul), er resultatet en tom streng.
Men når du kører i Oracle-tilstand, er resultatet
null
.Her er den i standardtilstand (dvs. ikke). i Oracle-tilstand):
SELECT TRIM('');
Resultat:
+----------+| TRIM('') |+----------+| |+----------+Lad os nu skifte til Oracle-tilstand:
SET SQL_MODE=ORACLE;
Og kør koden igen:
SELECT TRIM('');
Resultat:
+----------+| TRIM('') |+----------+| NULL |+----------+Der er også en alternativ måde at gøre dette på. I stedet for at skifte til Oracle-tilstand kan du bruge
TRIM_ORACLE()
som funktionsnavnet.Lad os skifte tilbage til standardtilstand:
SET SQL_MODE=DEFAULT;
Og kør nu
TRIM_ORACLE()
:SELECT TRIM_ORACLE('');
Resultat:
+----------------+| TRIM_ORACLE('') |+-----------------+| NULL |+-----------------+Manglende argument
Kalder
TRIM()
uden et argument resulterer i en fejl:SELECT TRIM();
Resultat:
FEJL 1064 (42000):Du har en fejl i din SQL-syntaks; tjek manualen, der svarer til din MariaDB-serverversion for den rigtige syntaks til brug i nærheden af ')' på linje 1