sql >> Base de Datos >  >> NoSQL >> MongoDB

SQLLPAD()

En SQL, LPAD() es una función de uso común que rellena la parte izquierda de una cadena con un carácter específico. La función se puede usar en cadenas y números, aunque dependiendo del DBMS, es posible que los números deban pasarse como una cadena antes de que se puedan rellenar.

DBMS que tienen un LPAD() incluyen MySQL, MariaDB, PostgreSQL y Oracle.

DBMS que no tener un LPAD() La función incluye SQL Server y SQLite (aunque hay otras formas de aplicar el relleno izquierdo en estos DBMS).

Ejemplo

Aquí hay un ejemplo para demostrar cómo usar LPAD() en su código SQL:

SELECT LPAD('Look Left', 20);

Resultado:

+-----------------------+
| LPAD('Look Left', 20) |
+-----------------------+
|            Look Left  |
+-----------------------+

En este ejemplo, la parte izquierda de la cadena se rellena con un espacio (el carácter de relleno predeterminado) y la cadena resultante tiene 20 caracteres (porque especifiqué 20 como segundo argumento).

Oracle funciona igual, pero necesitamos usar FROM DUAL al hacer una consulta como esta (sin consultar una tabla real):

SELECT LPAD('Look Left', 20) 
FROM DUAL;

Resultado:

    LPAD('LOOKLEFT',20) 
_______________________ 
           Look Left   

Especifique un carácter de relleno

El relleno no necesariamente tiene que ser un espacio. Opcionalmente, podemos agregar un tercer argumento para especificar el carácter (o caracteres) que se usará en el relleno.

SELECT LPAD('7', 3, '0');

Resultado:

007

En este caso, rellené un número con ceros. De hecho, pasé el número como una cadena en este ejemplo.

En algunos DBMS (como MariaDB y MySQL) podemos pasar el número como un número, así como el número para rellenarlo con:

SELECT LPAD(7, 3, 0);

Resultado:

007

También podemos hacer esto en Oracle:

SELECT LPAD(7, 3, 0) 
FROM DUAL;

Resultado:

007

Pero PostgreSQL tiene un problema con esto:

SELECT LPAD(7, 3, 0);

Resultado:

ERROR:  function lpad(integer, integer, integer) does not exist

Servidor SQL

SQL Server no tiene un LPAD() función, pero tiene un FORMAT() función que nos permite rellenar números con ceros a la izquierda:

SELECT FORMAT(7, '000');

Resultado:

007

La forma en que funciona es que pasamos el número, seguido de una cadena de formato. En el ejemplo anterior, la cadena de formato es 000 . Esta es una cadena de formato numérico personalizado que da como resultado que el número original se rellene para que el resultado consista en tres dígitos. Si aún no hay tres dígitos en el número original, entonces se rellena con ceros.

Para rellenar cadenas a la izquierda en SQL Server, podemos hacer algo como esto:

SELECT RIGHT('.......' + 'Cat', 7);

Resultado:

....Cat

También hay un par de otros equivalentes de LPAD() en SQL Server.