sql >> Database >  >> RDS >> Oracle

LTRIM() Functie in Oracle

In Oracle, de LTRIM() Met deze functie kunt u het linkerdeel van een tekenreeks inkorten. Standaard wordt witruimte bijgesneden, maar u kunt optioneel een ander teken of andere tekens opgeven om bij te snijden.

Syntaxis

De syntaxis gaat als volgt:

LTRIM(char [, set ])

Waar char en set kan elk van de gegevenstypen zijn CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , of NCLOB .

LTRIM verwijdert vanaf het linkeruiteinde van char alle tekens in set . Als u set . niet opgeeft , dan is het standaard een enkele spatie.

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren:

SELECT LTRIM('     Cat')
FROM DUAL;

Resultaat:

   LTRIM('CAT') 
_______________ 
Cat            

In dit geval heb ik niet gespecificeerd welk(e) teken(s) ik moest bijsnijden, en dus werd elke afzonderlijke spatie bijgesneden vanaf het linkergedeelte van de tekenreeks.

Hier is het weer in vergelijking met de originele (niet-opgevulde) snaar:

SELECT '     Cat'
FROM DUAL
UNION ALL
SELECT LTRIM('     Cat')
FROM DUAL;

Resultaat:

      'CAT' 
___________ 
     Cat    
Cat        

Geef een karakter op

In dit voorbeeld specificeer ik een teken om te trimmen:

SELECT LTRIM('...Cat...', '.')
FROM DUAL;

Resultaat:

   LTRIM('...CAT...','.') 
_________________________ 
Cat...                    

We kunnen dus zien dat het personage aan de linkerkant is bijgesneden, maar niet aan de rechterkant. Gebruik RTRIM() . om de rechterkant bij te snijden of TRIM() .

Merk op dat LTRIM() snijdt alleen het teken/de tekens in de set-up bij totdat er een personage is dat niet in de set zit. Hier is een voorbeeld van wat ik bedoel:

SELECT LTRIM('...A...Cat', '.')
FROM DUAL;

Resultaat:

   LTRIM('...A...CAT','.') 
__________________________ 
A...Cat                   

Als we echter A in de set, dan krijgen we een ander resultaat:

SELECT LTRIM('...A...Cat', '.A')
FROM DUAL;

Resultaat:

   LTRIM('...A...CAT','.A') 
___________________________ 
Cat                        

Databasevoorbeeld

Hier is een voorbeeld van het bijsnijden van het linkerdeel van de waarden in een databasekolom:

SELECT 
    country_name,
    LTRIM(country_name, 'Ar') AS Trimmed
FROM countries
FETCH FIRST 5 ROWS ONLY;

Resultaat:

   COUNTRY_NAME     TRIMMED 
_______________ ___________ 
Argentina       gentina     
Australia       ustralia    
Belgium         Belgium     
Brazil          Brazil      
Canada          Canada     

Null-waarden

Als een van de argumenten null . is het resultaat is null :

SET NULL 'null';

SELECT 
    LTRIM(null, 3),
    LTRIM(' Cat', null),
    LTRIM(null, null)
FROM DUAL;

Resultaat:

   LTRIM(NULL,3)    LTRIM('CAT',NULL)    LTRIM(NULL,NULL) 
________________ ____________________ ___________________ 
null             null                 null               

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Lege snaren trimmen

Het doorgeven van een lege string als het tweede argument resulteert in null :

SET NULL 'null';

SELECT LTRIM('   Cat', '')
FROM DUAL;

Resultaat:

   LTRIM('CAT','') 
__________________ 
null              

Maar door een enkele spatie aan de lege tekenreeks toe te voegen, verandert dat, en worden eventuele lege spaties aan de linkerkant van de tekenreeks bijgesneden:

SELECT LTRIM('   Cat', ' ')
FROM DUAL;

Resultaat:

   LTRIM('CAT','') 
__________________ 
Cat               

Onjuist aantal argumenten

LTRIM() . aanroepen zonder het doorgeven van argumenten geeft een fout:

SELECT LTRIM()
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT LTRIM()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

En het doorgeven van het verkeerde aantal argumenten resulteert in een fout:

SELECT LTRIM('Cat', 1, '>')
FROM DUAL;

Resultaat:

Error starting at line : 1 in command -
SELECT LTRIM('Cat', 1, '>')
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*Cause:    
*Action:

  1. SQL Server Invoegen indien niet bestaat

  2. AVG()-functie in PostgreSQL

  3. Hoe retourneer je de kolomnamen van een tabel?

  4. Ontdek op welk besturingssysteem SQL Server wordt uitgevoerd (T-SQL-voorbeeld)