ऐसे कई कार्य हैं जो MySQL और SQL सर्वर दोनों में शामिल हैं। हालांकि, सिर्फ इसलिए कि दोनों डीबीएमएस एक ही नाम के कार्यों को साझा करते हैं, इसका मतलब यह नहीं है कि वे कार्य ठीक उसी तरह काम करते हैं।
CHAR()
लें उदाहरण के लिए। MySQL और SQL सर्वर दोनों में यह फ़ंक्शन शामिल है। तकनीकी रूप से, SQL सर्वर के लिए यह वास्तव में एक T-SQL फ़ंक्शन है, लेकिन यह बिंदु के बगल में है। मुद्दा यह है कि MySQL CHAR()
फ़ंक्शन टी-एसक्यूएल/एसक्यूएल सर्वर की तुलना में अधिक कार्यक्षमता प्रदान करता है CHAR()
समारोह।
विशेष रूप से, MySQL संस्करण कई पूर्णांकों को स्वीकार करता है, जबकि, T-SQL संस्करण केवल एक पूर्णांक को स्वीकार करता है। MySQL संस्करण USING
. को भी स्वीकार करता है क्लॉज जो आपको यह निर्दिष्ट करने की अनुमति देता है कि किस वर्ण सेट का उपयोग करना है (टी-एसक्यूएल संस्करण में यह क्लॉज नहीं है)।
नीचे इन अंतरों के कुछ उदाहरण दिए गए हैं।
एकाधिक पूर्णांक
यदि हम MySQL का उपयोग करते समय एक से अधिक पूर्णांकों की आपूर्ति करते हैं तो क्या होता है:
SELECT CHAR(67, 97, 116) AS 'MySQL Result';
परिणाम:
+--------------+ | MySQL Result | +--------------+ | Cat | +--------------+
इसलिए यह प्रत्येक पूर्णांक की सफलतापूर्वक व्याख्या करता है और परिणाम देता है।
यदि हम SQL सर्वर का उपयोग करके ऐसा ही करते हैं तो यहां क्या होता है:
SELECT CHAR(67, 97, 116) AS 'SQL Server Result';
परिणाम:
The char function requires 1 argument(s).
MySQL उदाहरण के समान परिणाम प्राप्त करने के लिए, हमें कई CHAR()
को जोड़ना होगा कार्य। कुछ इस तरह:
SELECT CHAR(67) + CHAR(97) + CHAR(116) AS 'Concatenated Result';
परिणाम:
+-----------------------+ | Concatenated Result | |-----------------------| | Cat | +-----------------------+
USING
खंड
CHAR()
. का MySQL संस्करण एक USING
स्वीकार करता है खंड, जबकि टी-एसक्यूएल संस्करण नहीं है। यहां एक उदाहरण दिया गया है जहां मैं MySQL का उपयोग करके यूनिकोड कोड बिंदु निर्दिष्ट करता हूं:
SELECT CHAR(0x027FE USING ucs2) AS 'MySQL Result';
परिणाम:
+--------------+ | MySQL Result | +--------------+ | ⟾ | +--------------+
और जब मैं SQL सर्वर पर स्विच करता हूँ तो क्या होता है:
SELECT CHAR(0x027FE USING ucs2) AS 'SQL Server Result';
परिणाम:
Incorrect syntax near 'USING'.
उदाहरण 3 - एकाधिक परिणाम बाइट्स
MySQL में, 255 से बड़े तर्क स्वचालित रूप से एकाधिक परिणाम बाइट्स में परिवर्तित हो जाते हैं। SQL सर्वर में, 255 से बड़े तर्क NULL
return लौटाते हैं ।
यहाँ MySQL का उपयोग करते हुए एक उदाहरण दिया गया है:
SELECT HEX(CHAR(1799)) AS 'MySQL Result';
परिणाम:
+--------------+ | MySQL Result | +--------------+ | 0707 | +--------------+
और यहाँ, हम SQL सर्वर में वही काम करने का प्रयास करते हैं:
SELECT CONVERT(VARCHAR(1000), CHAR(1799), 2) AS 'SQL Server Result';
परिणाम:
+---------------------+ | SQL Server Result | |---------------------| | NULL | +---------------------+