Realizando buscar y reemplazar en la calculadora de campo QGIS?

8

Estoy tratando de reemplazar los valores de cadena seleccionados en una tabla de atributos, por ejemplo. "Texto1" para "Texto2" (QGIS 1.8.0), patricular para aquellas filas con valores NULL. He estado tratando de usar la expresión de reemplazo (y cualquier otra que he encontrado) sin suerte.

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

mastorey
fuente
1
compruebe también la función regexp_replace () como se describe en gis.stackexchange.com/questions/40637/…
underdark
¿Qué pasa si desea reemplazar la columna 1 en base a una matriz formada por la columna 1 y la columna 2. Algo así: columna 1 que tiene 100 combinaciones diferentes de 10 dígitos, 10x10 = 100 - matriz) para cada valor de la columna 2 (total: 1000 reemplazos). Collumn2 que varía de '1 a 10'. Para cada valor de collumn2 quiero una sustitución dentro de estos dos valores de matriz :! [ Ingrese la descripción de la imagen aquí ] ( i.stack.imgur.com/GnGU6.png )
Rui

Respuestas:

11

Podrías probar un caso cuando expresión:

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

Usando la expresión 'o', puede agregar múltiples 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 desea reemplazar NULL, olvide la expresión de reemplazo (solo funciona para cadenas y NULL no es cadena). Prueba este código exacto:

case when "Feature" is NULL then '12_1' else "Feature" end
GRAMO_
fuente
Gracias por su rápida respuesta. ¿Cómo funcionaría la expresión 'caso cuando' cuando simplemente desea actualizar los valores en un campo, en lugar de crear un nuevo campo?
mastorey
Simplemente seleccione el campo que desea en la Calculadora de campo en lugar de elegir "Crear nuevo campo". El código permanece igual.
GR_
Gracias de nuevo. Creo que el problema puede estar en el hecho de que mi tabla de atributos tiene solo 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. Lo que sea, me pregunto, sucedió con la función 'buscar y reemplazar' de versiones anteriores de QGIS.
mastorey
1
Esto debería ser el truco: caso en el que "Columna_1" es NULL y luego 'Texto1' más "Columna_1" finaliza
GR_
Gracias pero todavía no obtengo ningún cambio en la tabla de atributos. Según el código que ha sugerido, estoy ingresando lo siguiente: caso en que "Característica" es NULL y luego reemplace ("Característica", 'NULL', '12_1') o finalice "Característica" También he tratado de expresar NULL como 'NULL' y '' sin éxito. Cualquier ayuda adicional sería muy bienvenida y muy apreciada.
mastorey
-2

caso cuando "Característica" es "TEXTO 1", luego 'TEXTO 2' más finaliza "Característica"

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

Panait Valentin
fuente
2
¿Podría ampliar esto para explicar cómo responde esto a la pregunta sobre los comodines?
MaryBeth
Bueno, NULL es solo un reemplazo para los campos vacíos. El problema es cómo QGIS ve el valor NULL cuando usa "Calculadora de campo". Como campo NULL o vacío ''.
Panait Valentin
Pero en los campos vacíos '' no se pueden realizar operaciones BOOLEAN y este es el mayor problema.
Panait Valentin
caso cuando "GridRef" es NULL, entonces 0 más "GridRef" finaliza - Finalmente funcionó. pero por qué ... por favor no pregunte;)))
Panait Valentin