sql >> Base de Datos >  >> RDS >> SQLite

Cómo funciona Substr() en SQLite

El substr() de SQLite La función le permite devolver una subcadena de una cadena, en función de una ubicación de inicio dada dentro de la cadena.

Requiere dos argumentos y acepta un tercer argumento opcional.

Actualizar :A partir de SQLite 3.34.0 (lanzado el 1 de diciembre de 2020), substr() ahora se puede llamar substring() para compatibilidad con SQL Server.

Sintaxis

Puede llamar a substr() de cualquiera de las siguientes formas:

substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
  • X es la cadena completa que contiene la subcadena que desea devolver.
  • Y es la ubicación del primer carácter de la subcadena que desea devolver desde esa cadena.
  • Z es el número de caracteres que desea devolver. Si se omite, se devuelven todos los caracteres posteriores (a partir de Y ).

Si X es una cadena, entonces los índices de caracteres se refieren a caracteres UTF-8 reales. Si X es un BLOB, entonces los índices se refieren a bytes.

Tenga en cuenta que substring() la sintaxis solo está disponible desde SQLite 3.34.0.

Ejemplo con 3 Argumentos

Aquí hay un ejemplo básico para demostrar cómo usar substr() con tres argumentos.

SELECT substr('Industrial', 3, 4);

Resultado:

dust

Ejemplo con 2 Argumentos

Si omito el tercer argumento del ejemplo anterior obtengo el siguiente resultado.

SELECT substr('Industrial', 3);

Resultado:

dustrial

Punto de inicio negativo

Puede proporcionar un valor negativo para el segundo argumento. Cuando hace esto, el primer carácter de la subcadena se encuentra contando desde la derecha en lugar de desde la izquierda.

SELECT substr('Industrial', -3);

Resultado:

ial

Aquí hay otro ejemplo, esta vez especifico la longitud de la subcadena.

SELECT substr('Industrial', -8, 4);

Resultado:

dust

Entonces, los valores negativos tienen el mismo efecto que cuando se usa substring() función en MySQL. MySQL también tiene un substr() función, que es un sinónimo de su substring() función.

Sin embargo, esto es diferente a cómo SQL Server trata los valores negativos. Cuando pasa un valor negativo a substring() en SQL Server, simplemente comenzará a contar en un punto imaginario antes de que comience la cadena.

Longitud de subcadena negativa

El ejemplo anterior usó un punto de partida negativo. En este ejemplo, voy a usar una longitud negativa. Con esto quiero decir que proporcionaré un valor negativo para el tercer argumento.

SELECT substr('Industrial', -3, -4);

Resultado:

ustr

Por lo tanto, proporcionar un valor negativo para el tercer argumento da como resultado que se devuelvan los caracteres que preceden al punto de inicio.

Esto también se aplica cuando el segundo argumento es un valor positivo.

SELECT substr('Industrial', 7, -4);

Resultado:

dust

Ejemplo de base de datos

Aquí hay un ejemplo que usa substr() en una consulta de base de datos contra la base de datos de ejemplo de Chinook.

SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;

Resultado:

substr(Title, 1, 20)
--------------------
For Those About To R
Balls to the Wall   
Restless and Wild   
Let There Be Rock   
Big Ones            
Jagged Little Pill  
Facelift            
Warner 25 Anos      
Plays Metallica By F
Audioslave