SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como Substr() funciona no SQLite


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 de Y ).

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