No SQLite,
substring()
é um alias para substr()
. Ele retorna uma substring de uma string, com base em um determinado local inicial dentro da string. Dois argumentos são necessários e um terceiro argumento opcional é aceito.
A
substring()
a nomenclatura foi introduzida no SQLite 3.34.0, lançado em 1º de dezembro de 2020. O motivo pelo qual o substring()
sintaxe foi introduzida foi para compatibilidade com o SQL Server. Sintaxe
Portanto, agora você pode chamar a função de qualquer uma das seguintes maneiras:
substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
X
é a string completa que contém a substring que você deseja retornar.Y
é a localização do primeiro caractere da substring que você deseja retornar dessa string.Z
é o número de caracteres que você deseja retornar. Se omitido, todos os caracteres subsequentes são retornados (começando deY
).
Se
X
é uma string, então os índices de caracteres referem-se a caracteres UTF-8 reais. Se X
é um BLOB, então os índices referem-se a bytes. Como mencionado, a
substring()
sintaxe está disponível apenas no SQLite 3.34.0. Exemplo com 3 argumentos
Aqui está um exemplo básico para demonstrar como usar
substring()
com três argumentos. SELECT substring('Dolemite', 3, 4);
Resultado:
lemi
Exemplo com 2 argumentos
Se eu omitir o terceiro argumento do exemplo anterior, recebo o seguinte resultado.
SELECT substring('Dolemite', 3);
Resultado:
lemite
Ponto de partida negativo
Você pode fornecer um valor negativo para o segundo argumento. Ao fazer isso, o primeiro caractere da substring é encontrado contando da direita em vez da esquerda.
SELECT substring('Dolemite', -3);
Resultado:
ite
Aqui está outro exemplo, desta vez eu especifico o comprimento da substring.
SELECT substring('Dolemite', -7, 4);
Resultado:
olem
Portanto, os valores negativos têm o mesmo efeito que ao usar o
substring()
função no MySQL. MySQL também tem um substr()
função, que é um sinônimo de sua substring()
função. No entanto, isso é diferente de como o SQL Server trata valores negativos. Quando você passa um valor negativo para
substring()
no SQL Server, ele simplesmente começará a contar em um ponto imaginário antes do início da string. Comprimento da substring negativa
O exemplo anterior usou um ponto de partida negativo. Neste exemplo, vou usar um comprimento negativo. Com isso quero dizer que vou fornecer um valor negativo para o terceiro argumento.
SELECT substring('Dolemite', -1, -4);
Resultado:
emit
Portanto, fornecer um valor negativo para o terceiro argumento resulta no retorno dos caracteres anteriores ao ponto de partida.
Isso também se aplica quando o segundo argumento é um valor positivo.
SELECT substring('Dolemite', 6, -4);
Resultado:
olem
Exemplo de banco de dados
Aqui está um exemplo que usa
substring()
em uma consulta de banco de dados no banco de dados de exemplo 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
Nesse caso, retornei os dez primeiros caracteres do
Name
coluna. Também retornei o conteúdo completo do Name
coluna para comparar os resultados.