QGIS फील्ड कैलकुलेटर में एल्सिफ़ कंडिशनल स्टेटमेंट का उपयोग करना?


14

मैं QGIS फ़ील्ड कैलकुलेटर (संस्करण 1.8.0) में एक ELSEIF सशर्त विवरण लिखने की कोशिश कर रहा हूं। मैंने एक उदाहरण का उपयोग किया है जो मैंने ऑनलाइन पाया:

CASE WHEN val < 0 THEN 'negative'
  WHEN val = 0 THEN "neutral'
  ELSE 'positive'
END

मैंने कथन को इस प्रकार संशोधित किया:

CASE WHEN  "GRID_ID"  = 1 THEN 'complete'
  ELSEIF  "GRID_ID"  = 2 THEN "in progress'
  ELSE 'not started'
END

यह कथन नहीं चलेगा, आउटपुट पूर्वावलोकन में कहा गया है कि अभिव्यक्ति अमान्य है। अधिक जानकारी में कहा गया है: पार्सर त्रुटि: सिंटैक्स त्रुटि, अप्रत्याशित COLUMN_REF, जब WHEN या ELSE या END की उम्मीद हो

अगर किसी को यह त्रुटि हुई है, तो आपने इसे ठीक करने के लिए क्या किया?

जवाबों:


21

आपके संशोधित वक्तव्य में आपको कुछ समस्याएँ हैं।

  • चारों ओर उद्धरणों का असंगत उपयोग "in progress'
  • आपको स्तंभ नामों के उद्धरण की आवश्यकता नहीं है।
  • आप "ELSEIF" का उपयोग कर रहे हैं जब इसे "WHEN" होना चाहिए।

निम्नलिखित सभी तीन मुद्दों को हल करना चाहिए और 1.8.0 में मेरे लिए काम करना चाहिए:

CASE WHEN GRID_ID = 1 THEN 'complete'
  WHEN GRID_ID = 2 THEN 'in progress'
  ELSE 'not started'
END

2
"आपको कॉलम नामों के आसपास उद्धरणों की आवश्यकता नहीं है।" आप नहीं करते हैं, लेकिन मैं फिर भी इसकी सिफारिश करूंगा क्योंकि यह सिंटेक्स हाइलाइटर को उस हिस्से को एक कॉलम के रूप में चिह्नित करने में मदद करेगा।
नाथन डब्ल्यू

@ नथनडब्ल्यू - सिंटेक्स हाइलाइटर में लाल रंग के कॉलम के नाम हैं चाहे आप उद्धरण का उपयोग करें या नहीं, कम से कम यह मेरे 1.8 मिलियन इंस्टाल में करता है।
जीआईएस-जोनाथन

1
यह वास्तव में करता है। यह बहुत शर्मनाक है, मुझे पता होना चाहिए था कि जैसा कि मैंने हाइलाइटर लिखा है;)
नाथन डब्ल्यू

@ नथनडब्ल्यू - अंडरस्टैंडेबल। मैं मुश्किल से याद कर सकता हूं कि मैंने कल आखिर क्या लिखा था। ;-)
जीआईएस-जोनाथन 14
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.