Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

गणना (*) बनाम गणना (1) - SQL सर्वर

कोई अंतर नहीं है।

कारण:

<ब्लॉकक्वॉट>

ऑनलाइन पुस्तकें कहती हैं "COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } ) "

"1" एक गैर-शून्य अभिव्यक्ति है:इसलिए यह COUNT(*) जैसा ही है .अनुकूलक इसे पहचानता है कि यह क्या है:तुच्छ।

EXISTS (SELECT * ... या EXISTS (SELECT 1 ...

उदाहरण:

SELECT COUNT(1) FROM dbo.tab800krows
SELECT COUNT(1),FKID FROM dbo.tab800krows GROUP BY FKID

SELECT COUNT(*) FROM dbo.tab800krows
SELECT COUNT(*),FKID FROM dbo.tab800krows GROUP BY FKID

वही आईओ, वही योजना, काम करता है

संपादित करें, अगस्त 2011

DBA.SE पर इसी तरह का प्रश्न।

संपादित करें, दिसंबर 2011

COUNT(*) विशेष रूप से ANSI-92 में उल्लेख किया गया है ("Scalar expressions 125 . देखें) ")

<ब्लॉकक्वॉट>

मामला:

a) यदि COUNT(*) निर्दिष्ट है, तो परिणाम T की कार्डिनैलिटी है।

यही है, एएनएसआई मानक इसे खून बहने के रूप में पहचानता है कि आपका क्या मतलब है। COUNT(1) RDBMS विक्रेताओं द्वारा अनुकूलित किया गया है क्योंकि इस अंधविश्वास का। अन्यथा इसका मूल्यांकन एएनएसआई के अनुसार किया जाएगा

<ब्लॉकक्वॉट>

b) अन्यथा, TX को एकल-स्तंभ तालिका होने दें जो कि Tand की प्रत्येक पंक्ति में शून्य मानों को समाप्त करने के लिए लागू करने का परिणाम है। यदि एक या अधिक शून्य मान समाप्त हो जाते हैं, तो एक पूर्ण होने की शर्त उठाई जाती है:चेतावनी-



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे निर्धारित करें कि संख्या फ्लोट या पूर्णांक है

  2. पायथन (pyodbc) से SQL सर्वर संग्रहीत कार्यविधियों का उपयोग करना

  3. SQL सर्वर तुलना ऑपरेटरों की सूची

  4. SQL सर्वर DELETE - थोड़े उन्नत परिदृश्य वाली तालिका से एक या अधिक पंक्तियों को हटाना

  5. SSMS 2019 (v18) के लिए एक्सटेंशन कैसे बनाएं