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 deY
).
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