QGIS फील्ड कैलकुलेटर में कॉलम हेडर के लिए वाइल्डकार्ड का उपयोग करना?


10

मुझे पता है कि आप खेतों के लिए वाइल्डकार्ड्स का उपयोग कर सकते हैं जैसे (फील्ड कैलकुलेटर में):

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

क्या आप स्वयं कॉलम हेडर के लिए कुछ ऐसा कर सकते हैं?

मैं यह पूछता हूं क्योंकि मैं कई परतों में शामिल हो रहा हूं ( जोड़ों के गुणों का उपयोग करके ) और इससे मुझे कई फिल्टर संपादित करने के बजाय फिल्टर के एक सेट को संपादित करना आसान हो जाएगा क्योंकि कॉलम के नाम में शामिल परत नाम को शामिल करना होगा।

मैं क्यूजीआईएस 2.2 का उपयोग कर रहा हूं।

जवाबों:


4

माफ़ करना। वाइल्डकार्ड तार में उपयोग के लिए हैं , और दुर्भाग्य से एक कॉलम नाम के आसपास दोहरे उद्धरण का मतलब यह नहीं है कि यह एक स्ट्रिंग है। कॉलम नाम "पहचानकर्ता" हैं, जो मुझे लगता है कि मूल रूप से ऑब्जेक्ट नाम हैं, लेकिन मैं कोई विशेषज्ञ नहीं हूं। इसका मतलब यह नहीं है कि आप जो पूछ रहे हैं वह करने का कोई तरीका नहीं है, लेकिन यह क्षेत्र कैलकुलेटर में नहीं होगा।


धन्यवाद जैक, मैं कॉलम / फ़ील्ड के बारे में समझता हूं कि "पहचानकर्ता" हैं, अच्छा होगा यदि वे किसी तरह इसे शामिल कर सकते हैं। मैं इस जवाब को अभी के लिए स्वीकार करूंगा :)
जोसेफ

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.