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

SQLite SUBSTRING() explicado

En SQLite, substring() es un alias para substr() .

Devuelve una subcadena de una cadena, en función de una ubicación de inicio dada dentro de la cadena. Se requieren dos argumentos y se acepta un tercer argumento opcional.

La substring() La nomenclatura se introdujo en SQLite 3.34.0, que se lanzó el 1 de diciembre de 2020. La razón por la que substring() se introdujo la sintaxis para la compatibilidad con SQL Server.

Sintaxis

Ahora puede llamar a la función 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.

Como se mencionó, el 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 substring() con tres argumentos.

SELECT substring('Dolemite', 3, 4);

Resultado:

lemi

Ejemplo con 2 Argumentos

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

SELECT substring('Dolemite', 3);

Resultado:

lemite

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 substring('Dolemite', -3);

Resultado:

ite

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

SELECT substring('Dolemite', -7, 4);

Resultado:

olem

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 substring('Dolemite', -1, -4);

Resultado:

emit

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 substring('Dolemite', 6, -4);

Resultado:

olem

Ejemplo de base de datos

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

SELECT 
    substring(Name, 1, 10),
    Name
FROM Artist
ORDER BY Name DESC
LIMIT 10;

Resultado:

substring(Name, 1, 10)  Name                             
----------------------  ---------------------------------
Zeca Pagod              Zeca Pagodinho                   
Youssou N'              Youssou N'Dour                   
Yo-Yo Ma                Yo-Yo Ma                         
Yehudi Men              Yehudi Menuhin                   
Xis                     Xis                              
Wilhelm Ke              Wilhelm Kempff                   
Whitesnake              Whitesnake                       
Vinícius E              Vinícius E Qurteto Em Cy         
Vinícius E              Vinícius E Odette Lara           
Vinícius D              Vinícius De Moraes & Baden Powell

En este caso, devolví los primeros diez caracteres del Name columna. También devolví el contenido completo del Name columna para comparar los resultados.