sql >> Base de Datos >  >> RDS >> Oracle

Función LTRIM() en Oracle

En Oracle, LTRIM() La función le permite recortar la parte izquierda de una cadena. De forma predeterminada, recorta los espacios en blanco, pero opcionalmente puede especificar un carácter o caracteres diferentes para recortar.

Sintaxis

La sintaxis es así:

LTRIM(char [, set ])

Donde char y set puede ser cualquiera de los tipos de datos CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB o NCLOB .

LTRIM elimina del extremo izquierdo de char todos los caracteres contenidos en set . Si no especifica set , entonces por defecto es un solo espacio en blanco.

Ejemplo

Aquí hay un ejemplo simple para demostrarlo:

SELECT LTRIM('     Cat')
FROM DUAL;

Resultado:

   LTRIM('CAT') 
_______________ 
Cat            

En este caso, no especifiqué qué carácter/es recortar, por lo que cada uno de los espacios en blanco se eliminó de la parte izquierda de la cadena.

Aquí está nuevamente en comparación con la cadena original (sin relleno):

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

Resultado:

      'CAT' 
___________ 
     Cat    
Cat        

Especifique un carácter

En este ejemplo, especifico un carácter para recortar:

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

Resultado:

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

Entonces podemos ver que el personaje fue recortado del lado izquierdo pero no del lado derecho. Para recortar el lado derecho, use RTRIM() o TRIM() .

Tenga en cuenta que LTRIM() solo recorta el/los personaje/s en la configuración hasta que haya un personaje que no esté en el conjunto. He aquí un ejemplo de lo que quiero decir:

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

Resultado:

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

Sin embargo, si incluimos A en el conjunto, obtenemos un resultado diferente:

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

Resultado:

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

Ejemplo de base de datos

Este es un ejemplo de cómo recortar la parte izquierda de los valores en una columna de la base de datos:

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

Resultado:

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

Valores nulos

Si alguno de los argumentos es null el resultado es null :

SET NULL 'null';

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

Resultado:

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

De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null ocurre como resultado de un SQL SELECT declaración.

Sin embargo, puede usar SET NULL para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null debe ser devuelto.

Recortar cadenas vacías

Pasar una cadena vacía como segundo argumento da como resultado null :

SET NULL 'null';

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

Resultado:

   LTRIM('CAT','') 
__________________ 
null              

Pero agregar un solo espacio a la cadena vacía cambia eso y recorta los espacios en blanco de la izquierda de la cadena:

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

Resultado:

   LTRIM('CAT','') 
__________________ 
Cat               

Recuento de argumentos incorrecto

Llamando a LTRIM() sin pasar ningún argumento devuelve un error:

SELECT LTRIM()
FROM DUAL;

Resultado:

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:

Y pasar el número incorrecto de argumentos da como resultado un error:

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

Resultado:

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: