के साथ ठीक से काम नहीं कर रहा है, जो पंक्तियों की संख्या को गिनने की कोशिश करते समय एक अजीब परिस्थिति में आया था, जिसमें चयन कथन द्वारा निर्दिष्ट वर्चर्स मान नहीं हैं। ठीक है, यह मुझे भी भ्रमित करने लगता है, इसलिए मुझे आपको एक उदाहरण दें:COUNT() वर्च इन फ़ील्ड के साथ संयोजन में फ़ंक्शन वर्चर फ़ील्ड (टी-एसक्यूएल)
मान लें कि मेरे पास "कुछ योग्य" में "माईफिल्ड" फ़ील्ड है और मैं यह जानना चाहता हूं कि माईफिल्ड मान कितने पंक्तियों से संबंधित नहीं हैं "SomeOtherTable" में "MyOtherField" के मानों द्वारा परिभाषित डोमेन। दूसरे शब्दों में, मान लीजिए कि मेरे पास MyOtherField = {1, 2, 3} है, मैं गिनना चाहता हूं कि माईफिल्ड मान कितनी पंक्तियां 1, 2 या 3 नहीं है। इसके लिए, मैं निम्न क्वेरी का उपयोग करूंगा:
SELECT COUNT(*) FROM SomeTable
WHERE ([MyField] NOT IN (SELECT MyOtherField FROM SomeOtherTable))
और यह एक आकर्षण की तरह काम करता है। ध्यान दें कि माईफिल्ड और माईओथरफ़िल्ल्ड int टाइप किए गए हैं। यदि मैं वही टाइपर फ़ील्ड को छोड़कर सटीक वही क्वेरी चलाने की कोशिश करता हूं, तो इसका रिटर्निंग वैल्यू 0 है, भले ही मुझे पता है कि गलत मान हैं, मैंने उन्हें वहां रखा है! और यदि मैं, उपर्युक्त क्वेरी में "नहीं" खंड को दबाकर, विपरीत (गिनती के अनुसार डोमेन में कितनी पंक्तियां हैं, यह है कि कितनी पंक्तियां हैं) का विरोध करने की कोशिश करें ... ठीक है, काम करता है! ¬¬
हाँ, इसके लिए बहुत सारे कामकाज होना चाहिए लेकिन मैं जानना चाहता हूं कि यह किस तरह से काम नहीं करता है। इसके अलावा, मैं पूरी क्वेरी को आसानी से बदल नहीं सकता क्योंकि अधिकांश इसे सी # कोड के अंदर बनाया गया है और मूल रूप से केवल एकमात्र हिस्सा है जिसे मैं बदलने की आजादी देता हूं जिसका सॉफ़्टवेयर के किसी भी अन्य हिस्से में कोई प्रभाव नहीं होगा, यह चुनिंदा बयान है डोमेन से मेल खाता है (जो भी खंड में नहीं आता है)। मुझे उम्मीद है कि मैंने खुद को स्पष्ट कर दिया है और वहां से कोई मेरी मदद कर सकता है।
अग्रिम धन्यवाद।
क्या आपके पास उस क्षेत्र के "कुछ अन्यथा" में नल अंक हैं? –