मेरी तालिका में मुझे एक कॉलम मिला जिसका मूल्य 0 या 1 है। यदि वह कॉलम 0 है तो मैं मान को 'नो' के रूप में आउटपुट करता हूं; अगर 1 मुझे सभी पंक्तियों के लिए 'हां' के रूप में आउटपुट करना चाहिए। मैं केवल SQL कथन का उपयोग करके ऐसा कैसे कर सकता हूं। धन्यवादएसक्यूएल सर्वर इनलाइन अगर ईएलएसई
उत्तर
एसक्यूएल सर्वर एक इनलाइन if
बयान नहीं है, लेकिन यह एक इनलाइन case
है कि एक ही पूरा करने के लिए इस्तेमाल किया जा सकता है।
मामला है दो रूपों में से एक है:
select
case MyFlag
when 1 then 'YES'
when 0 then 'NO'
else 'OOPS'
end
from MyTable
जहां यह सिर्फ सी जैसी भाषाओं में एक स्विच और अन्य की तरह इस्तेमाल किया जाता है:
select
case
when MyFlag = 1 then 'YES'
when MyFlag = 0 then 'NO'
-- when some unrelated condition...
else 'OOPS'
end
from MyTable
जहां यह senquentially की एक सूची का मूल्यांकन करता है शर्तों को पूरा करता है और पूरा किया जाता है।
पीएस end
भाग अनिवार्य है, और मैं आमतौर पर इसे भूल जाता हूं। यह भी सामान्य है के लिए एक सरल case
stament को पूरी तरह से
select (case MyFlag when 1 then 'Yes' else 'No' end) as MyFlagDesc
कुछ इस तरह:
SELECT
CASE YourColumn
WHEN 0 THEN 'no'
WHEN 1 THEN 'yes'
ELSE 'nothing'
END
FROM dbo.YourTable
दो संभावनाओं की तरह, inlined जा:
(CASE WHEN condition1 THEN Value1 ELSE Value2 END)
या, सबसे पूर्ण समाधान:
(CASE value_to_check WHEN Value1 THEN Result1 [WHEN ... THEN ...] ELSE OtherResult END)
मैं समझता हूँ कि यह है कि प्रश्न (जो "एसक्यूएल सर्वर इनलाइन" के लिए Google परिणामों के शीर्ष पर दिखाई देता है) 2 साल पुराना है, लेकिन SQL सर्वर 2012 के साथ, उत्तर कुछ हद तक पुराना है । यह SQL inline if statement type question का डुप्लिकेट प्रतीत होता है, लेकिन वह प्रश्न (यहां तक कि एक पुराना होने वाला), का कोई भी जवाब अद्यतित नहीं है।
एसक्यूएल सर्वर 2012 में आप IIF
function उपयोग कर सकते हैं:
IIF (boolean_expression, true_value, false_value)
उदाहरण:
SELECT IIF(someColumn = 1, 'yes', 'no')
मैं एक पंक्ति में तीन IIF मिलाया, मैं तीन चर है और मुझे पता है कि एक है जो चाहते हैं शून्य से अधिक लेकिन मुझे प्राथमिकता का आदेश पता है HomePhoneID, PersonWorkPhoneID और PersonCellPhoneID
IIF(@PersonHomePhoneID > 0 , @PersonHomePhoneID, IIF(@PersonWorkPhoneID > 0 , @PersonWorkPhoneID, IIF(@PersonCellPhoneID > 0 , @PersonCellPhoneID, 0)))
सवाल का जवाब:
IIF(column = 1 , 'yes', IIF(column = 0, 'no', ''))
- 1. एसक्यूएल इनलाइन अगर बयान प्रकार प्रश्न
- 2. एसक्यूएल-सर्वर, अगर SQL क्वेरी
- 3. एसक्यूएल सर्वर: इनलाइन टेबल-वैल्यू यूडीएफ बनाम इनलाइन व्यू
- 4. एसक्यूएल सर्वर - अगर डाली संभव है
- 5. आशुलिपि अगर एसक्यूएल में बयान
- 6. आईएफ/ईएलएसई संग्रहीत प्रक्रिया
- 7. Asp.Net (सी #) इनलाइन कोडिंग इवल अगर स्टेटमेंट
- 8. पीएल/एसक्यूएल पैकेज इनलाइन दस्तावेज़ीकरण
- 9. एसक्यूएल सर्वर
- 10. एसक्यूएल सर्वर
- 11. एसक्यूएल सर्वर
- 12. एसक्यूएल सर्वर
- 13. एसक्यूएल सर्वर
- 14. एसक्यूएल सर्वर
- 15. एसक्यूएल सर्वर
- 16. एसक्यूएल सर्वर
- 17. एसक्यूएल सर्वर
- 18. एसक्यूएल सर्वर
- 19. एसक्यूएल सर्वर
- 20. एसक्यूएल सर्वर
- 21. एसक्यूएल सर्वर
- 22. एसक्यूएल: एसक्यूएल सर्वर
- 23. एसक्यूएल एसक्यूएल सर्वर
- 24. टी-एसक्यूएल (एसक्यूएल सर्वर)
- 25. एसक्यूएल सर्वर: एसक्यूएल क्वेरी
- 26. एसक्यूएल सर्वर
- 27. एसक्यूएल सर्वर
- 28. एसक्यूएल सर्वर
- 29. एसक्यूएल सर्वर
- 30. एसक्यूएल सर्वर
upvoted, मैं सरल बूलियन स्थितियों के लिए मामला बनाम IIF पसंद करते हैं क्योंकि यह अधिक सुव्यवस्थित – Breakskater
यह अच्छा जवाब है, धन्यवाद है। –