QGIS फील्ड कैलकुलेटर में सशर्त वक्तव्य बनाना


15

मैंने इस विषय पर कुछ अन्य प्रश्नोत्तर के रूप में देखा है, हालांकि, किसी ने भी मुझे संबोधित नहीं किया है कि मैं क्या करना चाहता हूं।

मेरे पास एक बड़ा डेटा सेट है और मैं एक निश्चित राशि (इस मामले में 20) पर किसी भी मान के लिए एक फ़ील्ड खोजना चाहूंगा और यदि मान 20 से बड़ा है, तो मैं किसी अन्य फ़ील्ड में 1 का मान वापस करना चाहूंगा, अन्यथा 0 का मान लौटाएं।

मैंने बिना किस्मत के कुछ लिखने की कोशिश की है।

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


मैं Qgis में इस एक्सप्रेस का पता लगाने की कोशिश कर रहा हूं, लेकिन इसके परिणाम नहीं हैं। केस कब "ए" = '1' और "लेंग्थ" <= 1 फिर "सी" = '4' ELSE ERROR END
giss

जवाबों:


29

आसान तरीका

ऐसा करने का सबसे सरल तरीका अभिव्यक्ति के साथ एक नया क्षेत्र बनाना है

"cat" > 20

यह अभिव्यक्ति एक बूलियन ट्रू / फाल्स का मूल्यांकन करेगी जिसे पूर्णांक 1 या 0 के रूप में दर्शाया जाएगा।

वर्चुअल फील्ड्स

आप एक वर्चुअल फ़ील्ड भी बना सकते हैं, जो catपरिवर्तन के मूल्यों (जैसे आप परत को संपादित करते हैं) के मामले में स्वचालित रूप से एक अद्यतन मान लौटाएगा । याद रखें कि वर्चुअल फ़ील्ड के मान डेटासेट में सहेजे नहीं जाएंगे और केवल इस QGIS प्रोजेक्ट के अंदर दिखाई देंगे।

बूलियन से अधिक

यदि आपके पास एक सरल "अधिक से अधिक" है, तो आपको उपयोग करने की आवश्यकता है

CASE 
  WHEN "cat" > 100 THEN 2
  WHEN "cat" > 10 THEN 1
  ELSE 0
END

6

मैंने अभी इसका परीक्षण किया है: आप कई बार इस स्थिति का उपयोग कर सकते हैं:

WHEN    cat =   1   THEN    205
WHEN    cat =   2   THEN    215
WHEN    cat =   3   THEN    225
WHEN    cat =   4   THEN    235
...

....


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