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

टीएसक्यूएल में नल कैरेक्टर शाब्दिक क्या है?

कैड रॉक्स के उत्तर में दो अलग-अलग व्यवहार हैं:प्रतिस्थापन सफल होता है (जब SQL संयोजन का उपयोग किया जाता है) और असफल (विंडोज संयोजन का उपयोग किया जाता है)। इसका कारण उपयोग किए गए संयोजन के प्रकार में है।

यह व्यवहार लगभग 4 वर्ष पहले Microsoft को सबमिट किया गया था:

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

प्रश्न: एनयूएल कैरेक्टर को रिप्लेस () के साथ बदलने की कोशिश करते समय, यह काम करता है कि वैल्यू में एक एसक्यूएल कोलाज है, लेकिन विंडोज कोलेशन नहीं है।

ए: यह इस तथ्य के कारण है कि Windowscollations में 0x0000 एक अपरिभाषित वर्ण है। तुलना, सॉर्ट और पैटर्न मिलान के दौरान सभी अपरिभाषित वर्णों को अनदेखा कर दिया जाता है। तो 'ए' + चार (0) के लिए खोज करना वास्तव में 'ए' की खोज करना है, और चार (0) की खोज करना खाली स्ट्रिंग के बराबर है।

अपरिभाषित चरित्र को संभालने का तरीका थोड़ा भ्रमित करने वाला है, लेकिन विंडोज ने उन्हें सॉर्ट करने के लिए परिभाषित किया है, और SQL सर्वर सामान्य विंडोज एपीआई के अनुरूप है।

एसक्यूएल संयोजन में, अपरिभाषित चरित्र की कोई धारणा नहीं है। प्रत्येक कोडपॉइंट को एक भार सौंपा जाता है, इसलिए हमें वहां कोई समस्या नहीं दिखाई देती है।

लेकिन दुर्भाग्य से, यह अभी भी अनिर्दिष्ट है।

तो, ऐसा लगता है कि केवल एक ही समाधान संयोजन को SQL संयोजन में बदलना है (उदा. SQL_Latin1_General_CP1_CI_AS भी इस्तेमाल किया जा सकता है)।

मैंने अपना पिछला उत्तर अनावश्यक के रूप में हटा दिया है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL का उपयोग करके SQL सर्वर में एक CHECK बाधा का नाम बदलें

  2. SQL सर्वर 2019 संस्करण पर विचार

  3. एसक्यूएल:संग्रहीत प्रक्रिया में खंड में:मूल्यों को कैसे पास करें

  4. एसक्यूएल एक ही तालिका में समूह पर कॉलम के योग को कैसे अपडेट करें

  5. SQL सर्वर में एक महीने में दिनों की संख्या कैसे निर्धारित करें?