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

SQLite SUBSTRING() Explicado


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

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.