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

SQL सर्वर में IsNumeric शामिल हों

आप उस क्रम पर भरोसा नहीं कर सकते जिसमें डेटाबेस फ़िल्टरिंग अभिव्यक्तियों का मूल्यांकन करेगा। एक क्वेरी ऑप्टिमाइज़र है जो आपके SQL का मूल्यांकन करेगा और क्वेरी को निष्पादित करने के लिए एक योजना तैयार करेगा जो यह मानता है कि इससे सर्वश्रेष्ठ प्रदर्शन प्राप्त होगा .

इस संदर्भ में, IsNumeric() किसी अनुक्रमणिका के साथ उपयोग नहीं किया जा सकता है, और इसका अर्थ है तालिका में प्रत्येक पंक्ति के विरुद्ध एक फ़ंक्शन चलाना। इसलिए, यह लगभग कभी नहीं . होगा सर्वोत्तम कथित प्रदर्शन प्रदान करें। इसकी तुलना SrcID > 15 . से करें अभिव्यक्ति, जिसे एक सूचकांक (यदि कोई मौजूद है) के साथ मिलान किया जा सकता है, और केवल एक एकल ऑपरेटर अभिव्यक्ति है, भले ही कोई न हो। इसका उपयोग संभावित पंक्तियों की संख्या को फ़िल्टर करने के लिए भी किया जा सकता है जहां IsNumeric() फ़ंक्शन को चलाने की आवश्यकता है।

आप इसे एक दृश्य, एक सबक्वायरी, एक सीटीई, एक केस स्टेटमेंट, या एक कंप्यूटेड कॉलम के साथ प्राप्त कर सकते हैं। यहां एक सीटीई उदाहरण दिया गया है:

With NumericOnly As 
(
    SELECT <columns> FROM MyTable WHERE IsNumeric(SrcID) = 1
)
SELECT <columns> FROM NumericOnly WHERE SrcID > 15

और यहां एक केस स्टेटमेंट विकल्प है:

SELECT <columns> FROM MyTable WHERE CASE WHEN IsNumeric(SrcIC) = 1 THEN Cast(SrcID As Int) ELSE 0 END > 15


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक यादृच्छिक संख्या उत्पन्न करें जो sql सर्वर में किसी तालिका में नहीं है

  2. तालिका संरचना में हेरफेर

  3. SQL सर्वर कॉम्पैक्ट संस्करण 4.0 को कैसे तैनात करें?

  4. INSERT कथन विदेशी कुंजी बाधा के साथ विरोध करता है

  5. टी-एसक्यूएल:सभी डुप्लिकेट पंक्तियों को हटाना लेकिन एक रखना