Thực hiện tìm và thay thế trong máy tính trường QGIS?


8

Tôi đang cố gắng thay thế các giá trị chuỗi đã chọn trong bảng thuộc tính, vd. "Text1" cho "Text2" (QGIS 1.8.0), tính chính xác cho các hàng có giá trị NULL. Tôi đã cố gắng sử dụng biểu thức thay thế (và bất kỳ biểu thức nào khác mà tôi đã tìm thấy) không có may mắn.

Có bất kỳ ký tự đại diện nào mà tôi có thể sử dụng trong tương lai không?


1
kiểm tra cũng regexp_replace () chức năng như mô tả trong gis.stackexchange.com/questions/40637/...
Underdark

Điều gì sẽ xảy ra nếu muốn thay thế collumn1 dựa trên ma trận được tạo bởi collumn 1 và collumn 2. Một cái gì đó như thế này: collumn1 có 100 kết hợp khác nhau gồm 10 chữ số, 10x10 = 100 - ma trận) cho mỗi giá trị của collumn2 (tổng cộng: 1000 thay thế). Collumn2 thay đổi từ '1 đến 10'. Đối với mỗi giá trị của collumn2 tôi muốn có một sự thay thế trong hai giá trị ma trận này : ! [ Nhập mô tả hình ảnh ở đây ] ( i.stack.imgur.com/GnGU6.png )
Rui

Câu trả lời:


11

Bạn có thể thử một trường hợp khi biểu thức:

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

Sử dụng biểu thức 'hoặc', bạn có thể thêm nhiều cột có giá trị NULL vào mã.

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

biên tập:

Nếu bạn muốn thay thế NULL, hãy quên biểu thức thay thế (nó chỉ hoạt động cho chuỗi và NULL không có chuỗi). Hãy thử mã chính xác này:

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

Cảm ơn bạn đã trả lời nhanh chóng. Biểu thức 'trường hợp khi' hoạt động như thế nào khi chỉ muốn cập nhật giá trị trong một trường, thay vì tạo trường mới?
mastorey

Chỉ cần chọn trường bạn muốn trong Máy tính trường thay vì chọn "Tạo trường mới". Mã vẫn giữ nguyên.
GR_

Cảm ơn một lần nữa. Tôi nghĩ vấn đề có thể nằm ở chỗ bảng thuộc tính của tôi chỉ có một trường? Tôi đang cố gắng cập nhật các giá trị của đa giác đã chọn, tức là từ giá trị NULL sang một thẻ chữ và số. Dù thế nào đi nữa, tôi tự hỏi, đã vui mừng với chức năng 'tìm và thay thế' của các bản phát hành trước đây của QGIS.
mastorey

1
Điều này sẽ thực hiện mẹo: trường hợp khi "Cột_1" là NULL thì 'Text1' khác "Cột_1" kết thúc
GR_

Cảm ơn nhưng tôi vẫn không nhận được bất kỳ thay đổi nào đối với bảng thuộc tính. Dựa trên mã bạn đã đề xuất, tôi đang nhập thông tin sau: trường hợp khi "Tính năng" là NULL thì thay thế ("Tính năng", 'NULL', '12_1') khác "Kết thúc" Tính năng tôi cũng đã cố gắng thể hiện NULL là cả 'NULL' và '' mà không thành công. Bất kỳ trợ giúp thêm sẽ rất được hoan nghênh và đánh giá cao nhất.
mastorey

-2

trường hợp khi "Tính năng" là "VĂN 1" thì kết thúc "Tính năng" của VĂN 2

Làm việc cho tôi. Giải thích giá trị NULL dường như đặt ra vấn đề. Một giải pháp khả thi là khởi tạo bảng có giá trị trung tính khác với NULL.


2
Bạn có thể mở rộng về điều này để giải thích làm thế nào điều này trả lời câu hỏi liên quan đến ký tự đại diện?
MaryBeth

Vâng, NULL chỉ là một sự thay thế cho các trường trống. Vấn đề là làm thế nào QGIS thấy giá trị NULL khi bạn sử dụng "Máy tính trường". Là NULL hoặc trường trống ''.
Panait Valentin ngày

Nhưng trên các trường trống '' không thể thực hiện các hoạt động BOOLESE và đây là vấn đề lớn nhất.
Panait Valentin ngày

trường hợp khi "GridRef" là NULL thì 0 khác "GridRef" kết thúc - Cuối cùng thì nó cũng hoạt động. nhưng tại sao ... xin đừng hỏi;)))
Panait Valentin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.