ใช้อักขระตัวแทนสำหรับส่วนหัวคอลัมน์ในเครื่องคำนวณฟิลด์ QGIS หรือไม่


10

ฉันรู้ว่าคุณสามารถใช้อักขระตัวแทนสำหรับฟิลด์เช่นนี้ (ในเครื่องคำนวณฟิลด์):

case when "column" ILIKE '%example%' then 1
else 0
end

คุณสามารถทำสิ่งที่คล้ายกันสำหรับส่วนหัวของคอลัมน์ตัวเอง?

ฉันถามสิ่งนี้เพราะฉันเข้าร่วมหลายเลเยอร์ (ใช้คุณสมบัติJoins ) และมันจะทำให้ง่ายขึ้นสำหรับฉันที่จะแก้ไขชุดตัวกรองหนึ่งชุดแทนที่จะแก้ไขตัวกรองหลายตัวเนื่องจากชื่อคอลัมน์จะต้องรวมชื่อเลเยอร์ที่เข้าร่วมด้วย

ฉันใช้ QGIS 2.2

คำตอบ:


4

ขอโทษ อักขระตัวแทนใช้สำหรับใช้ในสตริงและน่าเสียดายที่เครื่องหมายอัญประกาศคู่ล้อมรอบชื่อคอลัมน์ไม่ได้แปลว่าเป็นสตริง ชื่อคอลัมน์คือ "ตัวระบุ" ซึ่งฉันคิดว่าเป็นชื่อวัตถุ แต่โดยทั่วไปฉันไม่มีความเชี่ยวชาญ นั่นไม่ได้หมายความว่าไม่มีทางที่จะทำสิ่งที่คุณถาม แต่มันจะไม่เกิดขึ้นในเครื่องคิดเลขภาคสนาม


ขอบคุณ Zack ฉันเข้าใจเกี่ยวกับคอลัมน์ / ฟิลด์ที่เป็น "ตัวระบุ" จะดีถ้าพวกเขาสามารถรวมได้ ผมจะยอมรับคำตอบนี้ได้ในขณะนี้ล่ะค่ะ :)
โจเซฟ

6

ด้วยการเปิดตัวฟังก์ชั่นแก้ไขกลับมาใน QGIS 2.8 มันเป็นไปได้ที่จะวนซ้ำชื่อฟิลด์และทำการวิเคราะห์บางอย่าง:

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def fields(feature, parent):
    layer = qgis.utils.iface.activeLayer()
    field_names = [field.name() for field in layer.fields()]
    for name in field_names:
        if "some_name" in name:
            # Do something
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.