9 votos

¿Cómo hacer una simple búsqueda y sustitución en la calculadora de campo QGIS?

Estoy tratando de reemplazar los valores de las cadenas seleccionadas en una tabla de atributos, por ejemplo, "Texto1" por "Texto2" (QGIS 1.8.0), patriculando esas filas con valores NULL. He estado tratando de usar la expresión de reemplazo (y cualquier otra que haya encontrado) sin suerte.

¿Hay algún comodín que pueda usar en el futuro?

1 votos

Compruebe también la función regexp_replace() descrita en gis.stackexchange.com/questions/40637/

0 votos

¿Qué pasa si quiero reemplazar la columna 1 en base a una matriz preformada por la columna 1 y la columna 2? Algo así: collumn1 con 100 combinaciones diferentes de 10 dígitos, 10x10=100 - matriz) para cada valor de la collumn2 (total: 1000 sustituciones). Columna2 que varía de '1 a 10'. Para cada valor de collumn2 quiero una sustitución dentro de estos dos valores de la matriz: ![introduzca aquí la descripción de la imagen](https://i.stack.imgur.com/GnGU6.png) \

12voto

codeinthehole Puntos 183

Podrías intentar un caso cuando la expresión:

case when "Column_1" is NULL then  replace("Column_2",'Text2','Text1') else "Column_2" end

Utilizando la expresión "o", puede añadir varias columnas con valores NULL al código.

case when "Column_1" is NULL or "Column_3" is NULL then  replace("Column_2",'Text2','Text1') else "Column_2" end

editar:

Si quieres reemplazar NULL, olvida la expresión de reemplazo (sólo funciona para cadenas y NULL no es una cadena). Pruebe este código exacto:

case when "Feature" is NULL then '12_1' else "Feature" end

0 votos

Gracias por la rápida respuesta. ¿Cómo funcionaría la expresión 'case when' cuando simplemente se quieren actualizar los valores de un campo, en lugar de crear un nuevo campo?

0 votos

Sólo tiene que seleccionar el campo que desea en la calculadora de campos en lugar de elegir "Crear nuevo campo". El código sigue siendo el mismo.

0 votos

Gracias de nuevo. Creo que el problema puede estar en que mi tabla de atributos sólo tiene un campo. Estoy tratando de actualizar los valores de los polígonos seleccionados, es decir, de un valor NULL a una sola etiqueta alfanumérica. Me pregunto qué ha pasado con la función "buscar y reemplazar" de versiones anteriores de QGIS.

-2voto

RandomDev Puntos 61

Case when "Feature" is "TEXT 1" then 'TEXT 2' else "Feature" end

Trabaja para mi. La interpretación del valor NULL parece plantear problemas. Una posible solución es inicializar la tabla con un valor neutro diferente de NULL.

2 votos

¿Podría ampliar la información para explicar cómo responde esto a la pregunta sobre los comodines?

0 votos

Bueno, NULL es sólo un sustituto de los campos vacíos. El problema es cómo QGIS ve el valor NULL cuando se utiliza "Calculadora de campo". Como NULL o campo vacío ' '.

0 votos

Pero en los campos vacíos '' no se pueden realizar operaciones BOOLEAN y este es el mayor problema.

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