2012-02-02 10 views
26

निम्नलिखित कार्यों के साथ बयान - रिटर्न Y जब चार्जबैक किसी और 1 यह एनmysql का चयन करते हैं या

IF(fd.charge_back = 1, 'Y', 'N') AS charge_back 

करने के लिए डिफ़ॉल्ट के बराबर है लेकिन मैं इस एक काम करना आरंभ नहीं कर पा रहे?

IF(compliment = 'set' OR compliment = 'Y' OR compliment = 1, 'Y', 'N') AS customer_compliment 
+6

क्या होगा यदि आप में 'तारीफ करने के लिए अपनी हालत बदल ('set', 'वाई', '1')' – Lamak

+1

आप बस अपनी क्वेरी में यह नहीं करने पर विचार हो सकता है। यह स्वरूपण है, अब और पूछताछ नहीं कर रहा है। बदले में आपको एक स्पष्ट सत्य/झूठा 1/0 मिलता है जो चाल चलाना चाहिए। उदाहरण तुम कर सकते हो के लिए: यदि (तारीफ) आदि जो हां/नहीं की तरह एक तार के साथ नहीं किया जा सकता। इसके अलावा हां/नहीं जबकि बूलियन नहीं है नास्तिक भाषा है। तो उदाहरण के लिए डच में अनुवाद करते समय आपको वाई/एन को फिर से जे/एन में परिवर्तित करना होगा। संक्षेप में: हो सकता है सिर्फ इस जब तक आप ऐसा करने के लिए या सिर्फ एक कट ऑफ समाधान ले जाना है एक बहुत अच्छा कारण है ऐसा नहीं करते हैं। –

+0

आपकी प्रतिक्रिया के लिए धन्यवाद मैं सहमत हूं कि बूलियन उपयोग करने के लिए एक बेहतर मूल्य होगा। हालांकि मैं मौजूदा डेटा के साथ काम कर रहा हूं और अन्य हिस्सों पर प्रभाव डालने के बिना सभी मूल्यों को बदलने में सक्षम नहीं हूं। –

उत्तर

54

मुमकिन है यह काम होता है।

+0

शायद एक बेवकूफ सवाल है, लेकिन क्या एक 'इन' खंड यहां काम करता है? जैसे 'यदि (IN ('set' तारीफ, 'वाई, 1),' वाई ',' एन ') customer_compliment' के रूप में? –

3
IF(compliment IN('set','Y',1), 'Y', 'N') AS customer_compliment 

काम करेगा के रूप में Buttle Butkus सुझाव: वाक्य रचना वैध

IF(compliment = ('set' OR 'Y' OR 1), 'Y', 'N') AS customer_compliment 
संबंधित मुद्दे