sql server - Using a function in a query that returns a string or a null -


मैं 2 तालिकाओं में शामिल होना चाहता हूं 'addresses' और 'user_info' पर user_id और app_id (जो एक संख्या है या यह रिक्त है), इन 2 उदाहरणों की तरह:

  चुनें * user_info से Addresses.user_id = user_info.user_id और addresses.app_id पर बाएं बाहरी शामिल पते छोड़े गए हैं * user_info से पते पर बाहरी छोड़ने के पते *। User_in = user_info.user_id और addresses.app_id = 1234  

एप_आईडी क्या जटिल होना चाहिए और मैंने इसे वापस करने के लिए एक फ़ंक्शन लिखी है। यह एक स्ट्रिंग देता है, जो "नल" या "= 1234" उदाहरण के लिए होगा। मैं इसे इस वाक्यविन्यास के साथ कॉल करने की कोशिश कर रहा हूं:

पूर्वनिर्धारित करें; user_info से * पते से बाहरी पते को छोड़ दें। User_in = user_info.user_id और addresses.app_id dbo.fnGetAppId (addresses.user_id) < / कोड>

मुझे यह त्रुटि मिलती है:

संदेश 4145, स्तर 15, राज्य 1, रेखा 3 संदर्भ में निर्दिष्ट गैर-बूलियन प्रकार की अभिव्यक्ति जहां एक शर्त उम्मीद है, 'डीबो' के पास।

मैं क्वेरी को बहुत सरल रखना चाहूंगा क्योंकि यह निर्धारित करने के बिना है कि फ़ंक्शन रिक्त हो या नहीं।

क्या आप कॉलिंग क्वेरी को बहुत सरल रखने का सबसे अच्छा तरीका सुझा सकते हैं?

(मैं एसक्यूएल सर्वर 2005 में हूं।)

नल! = नल यदि either address.app_id = NULL या fnGetAppID = NULL, तो तुलना विफल हो जाएगी। मैं इस प्रकार की तुलना लिखूंगा:

कोलासेज़ (address.app_id, 'NULLSTRING') = कोलासेज (dbo.fnGetAppID (addresses.user_id), 'NULLSTRING')


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -