O SQLite
substr()
A função permite que você retorne uma substring de uma string, com base em um determinado local inicial dentro da string. Requer dois argumentos e aceita um terceiro argumento opcional.
Atualizar :a partir do SQLite 3.34.0 (lançado em 1º de dezembro de 2020),
substr()
agora pode ser chamado de substring()
para compatibilidade com o SQL Server. Sintaxe
Você pode chamar
substr()
em qualquer uma das seguintes formas: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. Observe que 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
substr()
com três argumentos. SELECT substr('Industrial', 3, 4);
Resultado:
dust
Exemplo com 2 argumentos
Se eu omitir o terceiro argumento do exemplo anterior, recebo o seguinte resultado.
SELECT substr('Industrial', 3);
Resultado:
dustrial
Ponto de partida negativo
Você pode fornecer um valor negativo para o segundo argumento. Ao fazer isso, o primeiro caractere da substring é encontrado contando a partir da direita e não da esquerda.
SELECT substr('Industrial', -3);
Resultado:
ial
Aqui está outro exemplo, desta vez eu especifico o comprimento da substring.
SELECT substr('Industrial', -8, 4);
Resultado:
dust
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 substr('Industrial', -3, -4);
Resultado:
ustr
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 substr('Industrial', 7, -4);
Resultado:
dust
Exemplo de banco de dados
Aqui está um exemplo que usa
substr()
em uma consulta de banco de dados no banco de dados de exemplo 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