4 votos

QGIS extraer la parte de la descripción a otro atributo de columna de la tabla

Tengo una tabla de atributos con los campos "nombre" y "descripción". En la "descripción" campo tengo la siguiente cadena: uso:xxx población:xxx. Las xxx son ejemplos dado que se trata de un conjunto de datos muy grande.

Quiero extraer el xxx después de la población a otro campo llamado "población" con la calculadora de campo.

En la imagen de abajo se puede ver el formato real del campo "desc". Mi intención es extraer el número de flotación después de la población (sólo el número). enter image description here

5voto

Michael Puntos 11

Extracto de la nada después de la population= al final de la línea

regexp_substr("desc", 'population=(.*)\n')

si usted desea hacer el cálculo, se envuelve en un to_int(...)

Una combinación perfecta para el día de hoy. Declarando regexp día :)

1voto

Adam Ernst Puntos 6939

Puede utilizar las funciones de manipulación de cadena para esto, algo (no probado) como:

right(  "DESC",   length( "DESC") - strpos( "DESC", "population:") + length("population:")) 

tomar todos los caracteres de la a a la RIGHT de la posición de la cadena "population:" - es posible que desee comprobar mi las matemáticas en la eso.

1voto

Hydrographer Puntos 18

Probado para trabajar en QGIS 2.14. Usted puede buscar para la población: "que devuelve el inicio índice. Luego toma la derecha de la que se derivan índice inicial de la variable en cuestión. El código se emitía en to_real() para conseguir tu flotador.

 to_real( right("desc", length("desc") - strpos("desc", 'population:') - length('population:') + 1)) 

Necesitaba ad +1 para el índice.

Edit: si se está trabajando con QGIS 2.8, uso toreal() en lugar de to_real()

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X