Mais

Encontrando a posição do caractere dentro da string no Spatialite?

Encontrando a posição do caractere dentro da string no Spatialite?


Eu tenho um monte de dados gerados como .dbf pelo ArcMap que importei no Spatialite para processamento.

Uma das colunas (dados de texto) é de importância crítica, pois contém o ID de um ponto e um segundo ID de outro ponto separado por um traço:54 - 145por exemplo.

O que eu preciso é conseguir extrair o número que está antes de "-". Para fazer isso, descobri sobre oinstr (X, Y)função que deve ser capaz de localizar a posição do "-":

A função instr (X, Y) encontra a primeira ocorrência da string Y dentro da string X e retorna o número de caracteres anteriores mais 1, ou 0 se Y não for encontrado em nenhum lugar dentro de X.

Depois disto,substr (X, Y, Z)deve ser o suficiente para obter apenas o primeiro número. Deve-se notar que o comprimento do primeiro número varia de um a seis dígitos, extrair a substring com base em um comprimento constante não é possível.

A função substr (X, Y, Z) retorna uma substring da string de entrada X que começa com o Y-ésimo caractere e que tem Z caracteres.

Depois de vários testes, parece queinstr (X, Y)não existe em Spatialite. Alguém sabe sobre uma função semelhante a instr (X, Y) em Spatialite?

(Estou usando o Spatialite-GUI 1.6.0 com o Spatialite 4.0.0).


Spatialite-gui 1.7.1 para Windows vem com SQLite recente o suficiente (v.3.7.17)

selecione instr ("nome", 'm') como local; localização ======== 3

Assista o vídeo: QGIS-SPATİALİTE