Suite

Trouver la position du caractère dans la chaîne dans Spatialite?

Trouver la position du caractère dans la chaîne dans Spatialite?


J'ai un tas de données générées en tant que .dbf par ArcMap que j'ai importées dans Spatialite pour traitement.

L'une des colonnes (données textuelles) est d'une importance critique car elle contient l'ID d'un point et un deuxième ID d'un autre point séparés par un tiret :54 - 145par exemple.

Ce dont j'ai besoin, c'est de pouvoir extraire le nombre qui est avant le "-". Pour ce faire, j'ai découvert leinstr(X, Y)fonction qui devrait pouvoir localiser la position du "-":

La fonction instr(X,Y) trouve la première occurrence de la chaîne Y dans la chaîne X et renvoie le nombre de caractères précédents plus 1, ou 0 si Y n'est trouvé nulle part dans X.

Après ça,sousstr(X,Y,Z)devrait être suffisant pour obtenir uniquement le premier numéro. Il convient de noter que la longueur du premier nombre varie de un à six chiffres, l'extraction de la sous-chaîne basée sur une longueur constante n'est donc pas possible.

La fonction substr(X,Y,Z) renvoie une sous-chaîne de la chaîne d'entrée X qui commence par le Y-ième caractère et qui est longue de Z caractères.

Après plusieurs tests, il semble queinstr(X,Y)n'existe pas dans Spatialite. Quelqu'un connaît-il une fonction similaire à instr(X,Y) dans Spatialite ?

(J'utilise Spatialite-GUI 1.6.0 avec Spatialite 4.0.0).


Spatialite-gui 1.7.1 pour Windows est fourni avec suffisamment de SQLite récent (v.3.7.17)

sélectionnez instr("nom",'m') comme emplacement ; emplacement ======== 3