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: