2012-08-24 7 views
5

मैं इस तरह के बयानों मिला:का उपयोग कैसे करें एक parametrized क्वेरी में शून्य है (डेल्फी)

SELECT * From Table WHERE Feld IS NULL 
SELECT * From Table WHERE Feld IS NOT NULL 

अब मैं सोच रहा हूँ कि कैसे मैं इस क्वेरी parametrize सकता है:

SELECT * From Table WHERE Feld IS :Value 

के रूप में मैं नहीं कर सकता एक पैरामीटर के लिए 'नॉट नल', मुझे लगता है कि यह संभव नहीं है - लेकिन शायद किसी के लिए इसका समाधान पता है? धन्यवाद!

उत्तर

6

आप कुछ इस तरह (Firebird 2.5 के साथ परीक्षण) की कोशिश कर सकते:

SELECT * FROM TABLE WHERE (IIF(FIELD IS NULL, 'Y', 'N') = :IS_NULL) 

तो IS_NULL पैरामीटर के लिए 'Y' या 'N' गुजरती हैं।

आपके द्वारा उपयोग किए जा रहे डेटाबेस के आधार पर, आपको को CASE या इसी तरह के निर्माण के साथ प्रतिस्थापित करने की आवश्यकता हो सकती है।

+0

यह अच्छा काम करता है - तेजी से मदद के लिए धन्यवाद! – user1619275

+0

ओपी कार्य के आधार पर, फायरबर्ड में [SQL_NULL] (http://www.firebirdsql.org/refdocs/langrefupd25-sqlnull.html) डेटा प्रकार का उपयोग किया जा सकता है। लेकिन क्या यह समर्थित है या नहीं, डेटा एक्सेस लाइब्रेरी पर निर्भर करता है, ओपी का उपयोग कर रहा है। –

+0

@ दा-मुलायम दिलचस्प लिंक, धन्यवाद! लेकिन उस पृष्ठ से मुझे क्या समझा गया था कि 'SQL_NULL' का उपयोग वैकल्पिक पैरामीटर निर्दिष्ट करने के लिए किया जा सकता है, न कि क्वेरी किए गए डेटा के नल-नेस। यह इस कार्य के लिए उपयोगी प्रतीत नहीं होता है। –

संबंधित मुद्दे