ज्यादातर मामलों में, एसक्यूएल में एक स्ट्रिंग और एक संख्या को जोड़ना दो तारों को जोड़ने के लिए अलग नहीं है।
अधिकांश डीबीएमएस स्ट्रिंग और संख्या को जोड़ देंगे जैसे कि वे दोनों तार थे। इसका कारण यह है कि संख्या आमतौर पर संयोजन संचालन से पहले एक स्ट्रिंग में परिवर्तित हो जाती है।
अधिकांश प्रमुख RDBMS एक CONCAT()
प्रदान करते हैं संयोजन संचालन के लिए कार्य, साथ ही एक CONCAT_WS()
फ़ंक्शन जो आपको एक विभाजक निर्दिष्ट करने की अनुमति देता है जिसके लिए संयोजित तर्कों को अलग करना है।
अधिकांश प्रमुख RDBMS में एक स्ट्रिंग कॉन्सटेनेशन ऑपरेटर भी शामिल होता है, जो हमें इसके ऑपरेंड को संयोजित करने की अनुमति देता है।
द CONCAT()
समारोह
अधिकांश प्रमुख RDBMS एक CONCAT()
प्रदान करते हैं इसके स्ट्रिंग तर्कों को संयोजित करने के लिए कार्य करता है। आम तौर पर, गैर-स्ट्रिंग तर्कों को संयोजन होने से पहले एक स्ट्रिंग में बदल दिया जाता है।
उदाहरण:
SELECT CONCAT('Player', 456);
परिणाम:
Player456
यदि हम सम्मिलित तर्कों के बीच एक स्थान शामिल करना चाहते हैं, तो हम या तो किसी एक तार में एक स्थान जोड़ सकते हैं, या एक अलग तर्क के रूप में एक स्थान शामिल कर सकते हैं:
SELECT
CONCAT('Player ', 456) AS "Option 1",
CONCAT('Player', ' ', 456) AS "Option 2";
परिणाम:
+------------+------------+ | Option 1 | Option 2 | +------------+------------+ | Player 456 | Player 456 | +------------+------------+
RDBMS जिनके पास CONCAT()
. है फ़ंक्शन में MySQL, MariaDB, SQL Server, Oracle, और PostgreSQL शामिल हैं।
SQLite में CONCAT()
नहीं है समारोह। SQLite करता है एक स्ट्रिंग संयोजन ऑपरेटर है (नीचे देखें)।
द CONCAT_WS()
समारोह
किसी स्थान को शामिल करने का दूसरा तरीका CONCAT_WS()
. का उपयोग करना है समारोह। यह फ़ंक्शन आपको एक विभाजक निर्दिष्ट करने की अनुमति देता है जिसका उपयोग सभी संयोजित तर्कों को अलग करने के लिए किया जाएगा।
उदाहरण:
SELECT CONCAT_WS(' ', 'Player', 456);
परिणाम:
Player 456
यह फ़ंक्शन विशेष रूप से उपयोगी हो सकता है यदि आपके पास संयोजित करने के लिए बहुत सारे तर्क हैं:
SELECT CONCAT_WS(', ', 'Red', 2, 'Green', 456, 'Black');
परिणाम:
Red, 2, Green, 456, Black
ऐसे मामलों में, आपको केवल एक बार विभाजक निर्दिष्ट करने की आवश्यकता है। इस उदाहरण में, मैंने एक अल्पविराम और एक स्थान को विभाजक के रूप में निर्दिष्ट किया है।
RDBMS जिनके पास CONCAT_WS()
है फ़ंक्शन में MySQL, MariaDB, SQL Server और PostgreSQL शामिल हैं।
SQLite और Oracle में CONCAT_WS()
नहीं है काम करते हैं, लेकिन वे करते हैं एक स्ट्रिंग संयोजन ऑपरेटर है (नीचे देखें)।
स्ट्रिंग कॉन्सटेनेशन ऑपरेटर
अधिकांश आरडीबीएमएस में एक स्ट्रिंग कॉन्सटेनेशन ऑपरेटर शामिल होता है जो इसके ऑपरेंड को जोड़ता है।
यदि आप SQLite का उपयोग कर रहे हैं, तो यह आपके लिए एकमात्र विकल्प है।
उदाहरण:
SELECT 'Player' || 456;
परिणाम:
Player456
ध्यान दें कि MySQL में, आपको पहले पाइप कॉन्सटेनेशन ऑपरेटर को सक्षम करना होगा।
वही मारियाडीबी के लिए जाता है।
एसक्यूएल सर्वर
उपरोक्त उदाहरण SQL सर्वर में काम नहीं करेगा। SQL सर्वर में, धन चिह्न का उपयोग करें (+
) स्ट्रिंग कॉन्सटेनेशन ऑपरेटर।
साथ ही, संख्या को जोड़ने का प्रयास करने से पहले एक स्ट्रिंग में परिवर्तित करने की भी आवश्यकता होगी:
SELECT 'Player' + CAST(456 AS varchar(3));
परिणाम:
Player456
अगर मैं नंबर को पहले स्ट्रिंग में बदले बिना ऐसा करने की कोशिश करता हूं तो यहां क्या होता है:
SELECT 'Player' + 456;
परिणाम:
Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value 'Player' to data type int.
SQL सर्वर को लगता है कि हम दो नंबर जोड़ने की कोशिश कर रहे हैं (क्योंकि +
अतिरिक्त ऑपरेटर भी है) और इसलिए एक ऑपरेंड के स्ट्रिंग होने के कारण एक त्रुटि देता है।