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

SQL सर्वर में LEFT () बनाम SUBSTRING ():क्या अंतर है?

SQL सर्वर वातावरण में, हमारे निपटान में कई स्ट्रिंग फ़ंक्शंस में से दो हैं LEFT() और SUBSTRING() .

ये कार्य समान कार्य करते हैं, लेकिन अंतर हैं। यह लेख इन कार्यों के बीच कुछ मुख्य अंतरों को देखता है।

परिभाषा

सबसे पहले, आइए देखें कि प्रत्येक फ़ंक्शन क्या करता है:

LEFT()
वर्णों की निर्दिष्ट संख्या के साथ वर्ण स्ट्रिंग का बायां भाग लौटाता है।
SUBSTRING()
किसी वर्ण, बाइनरी, टेक्स्ट या इमेज एक्सप्रेशन का हिस्सा देता है।

तो LEFT() स्ट्रिंग का केवल बायाँ भाग लौटाता है।

SUBSTRING() बस एक्सप्रेशन का एक हिस्सा देता है (यह केवल बाएँ भाग तक सीमित नहीं है - यह बाएँ, दाएँ या बीच में कहीं भी हो सकता है)।

उदाहरण 1 - समान परिणाम

दोनों कार्यों का उपयोग बाईं ओर से एक निश्चित संख्या में वर्णों को वापस करने के लिए किया जा सकता है।

SELECT 
  LEFT('Buckethead', 6) AS [LEFT],
  SUBSTRING('Buckethead', 1, 6) AS [SUBSTRING];

परिणाम:

+--------+-------------+
| LEFT   | SUBSTRING   |
|--------+-------------|
| Bucket | Bucket      |
+--------+-------------+

हालांकि, LEFT() अधिक संक्षिप्त है। यह आंशिक रूप से इस तथ्य के कारण है कि फ़ंक्शन नाम में कम वर्ण हैं।

लेकिन यह वाक्य रचना के कारण भी है। LEFT() फ़ंक्शन के लिए केवल दो तर्कों की आवश्यकता होती है (अभिव्यक्ति, और वापस आने के लिए वर्णों की संख्या), जबकि SUBSTRING() तीन तर्कों की आवश्यकता होती है (अभिव्यक्ति, प्रारंभिक स्थिति, और उस प्रारंभिक स्थिति से लौटने के लिए वर्णों की संख्या)।

उदाहरण 2 - जब सबस्ट्रिंग बेहतर हो

SUBSTRING() LEFT() . से काफी बेहतर है स्ट्रिंग के बीच से डेटा हथियाने पर। दरअसल, लेफ्ट को उसके लिए नहीं बनाया गया है। यदि आप वास्तव में LEFT() . का उपयोग करना चाहते हैं ऐसा करने के लिए, आपको कुछ चालबाजी करनी होगी, जैसे RIGHT() . का उपयोग करना इसके पहले तर्क के रूप में कार्य करें।

उदाहरण:

SELECT 
  LEFT(RIGHT('Buckethead', 7), 3) AS [LEFT/RIGHT],
  SUBSTRING('Buckethead', 4, 3) AS [SUBSTRING];

परिणाम:

+--------------+-------------+
| LEFT/RIGHT   | SUBSTRING   |
|--------------+-------------|
| ket          | ket         |
+--------------+-------------+

स्वीकृत डेटा प्रकार

LEFT() फ़ंक्शन पाठ को स्वीकार नहीं करता है और ntext डेटा प्रकार इसके पहले तर्क के रूप में। यह अन्य सभी डेटा प्रकारों का समर्थन करता है जिन्हें varchar . में परिवर्तित किया जा सकता है या नवरचर .

SUBSTRING() दूसरी ओर कार्य करता है, चरित्र . स्वीकार करता है , बाइनरी , पाठ , ntext , और छवि भाव।

रिटर्न वैल्यू

LEFT() रिटर्न वर्कर जब पहला तर्क एक गैर-यूनिकोड वर्ण डेटा प्रकार है, और nvarchar जब यह एक यूनिकोड वर्ण डेटा प्रकार है।

SUBSTRING() . के लिए वापसी मान इस प्रकार हैं:

अभिव्यक्ति (पहला तर्क) रिटर्न प्रकार
चार /वर्कर /पाठ वर्कर
nchar /नवरचर /nपाठ्य नवरचर
बाइनरी /वरबाइनरी /छवि varbinary

  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. SQL सर्वर - एक संग्रहीत कार्यविधि समाप्त होने तक तालिका को कैसे लॉक करें

  3. चयन प्रश्नों पर SQL सर्वर लॉक को समझना

  4. एकाधिक क्लाइंट के साथ डीबी कतार के रूप में SQL सर्वर का उपयोग करना

  5. दो तिथियों के बीच के महीने