यह थोड़ा मुश्किल है। मान लें कि तालिका में केवल एक स्तंभ है, तो गणना (1) और गणना (*) अलग-अलग मान देगा।
set nocount on
declare @table1 table (empid int)
insert @table1 values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(NULL),(11),(12),(NULL),(13),(14);
select * from @table1
select COUNT(1) as "COUNT(1)" from @table1
select COUNT(empid) "Count(empid)" from @table1
क्वेरी परिणाम
जैसा कि आप छवि में देख सकते हैं, पहला परिणाम दिखाता है कि तालिका में 16 पंक्तियाँ हैं। जिसमें से दो पंक्तियाँ NULL हैं। इसलिए जब हम गणना इंजन (*) का उपयोग करते हैं, तो क्वेरी इंजन पंक्तियों की संख्या को गिनता है, इसलिए हमें 16 के रूप में गणना परिणाम मिला। लेकिन गणना (एम्पिड) के मामले में यह कॉलम एम्पिड में गैर-पूर्ण-मानों की गणना करता है । इसलिए हमें 14 के रूप में परिणाम मिला।
इसलिए जब भी हम COUNT (कॉलम) का उपयोग कर रहे हैं, तो सुनिश्चित करें कि हम नीचे दिखाए गए अनुसार NULL मानों का ध्यान रखते हैं।
select COUNT(isnull(empid,1)) from @table1
NULL और Non-NULL दोनों मानों की गणना करेगा।
नोट : जब तालिका एक से अधिक कॉलम से बनी हो, तब भी समान बात लागू होती है। काउंट (1) NULL / Non-NULL मानों के बावजूद कुल पंक्तियों की संख्या देगा। केवल जब कॉलम मान को काउंट (कॉलम) का उपयोग करके गिना जाता है, तो हमें NULL मूल्यों का ध्यान रखना चाहिए।