sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer TRIM() i MariaDB

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 Argument

Som standard er TRIM() trimmer begge sider af snoren. Du kan dog udtrykkeligt angive BOTH 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 Argument

Angivelse 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 Argument

Angivelse 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 og TRAILING 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 resultatet null :

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

  1. Sådan får du den aktuelle dato i SQLite

  2. Problemet med tabt opdatering i samtidige transaktioner

  3. Sådan udskrives flere rapporter med stregkoder \ eller flere stregkoder i én rapport

  4. Split funktion i oracle til kommaseparerede værdier med automatisk sekvens