2009-10-27 10 views
23

में nvarchar चर के कास्ट संयोजन को मुझे nvarchar चर के संयोजन को बदलने की जरूरत है। By documentation:टी-एसक्यूएल

(...) 3. मुक़ाबला खंड कई स्तरों पर निर्दिष्ट किया जा सकता। इनमें निम्नलिखित शामिल हैं:

अभिव्यक्ति के संयोजन को कास्ट करना। आप एक निश्चित अभिव्यक्ति के लिए वर्ण अभिव्यक्ति लागू करने के लिए COLLATE खंड का उपयोग कर सकते हैं। कैरेक्टर अक्षर और चर वर्तमान डेटाबेस का डिफ़ॉल्ट संयोजन असाइन किया गया है। कॉलम संदर्भ ने कॉलम की परिभाषा को असाइन किया है। अभिव्यक्ति के संयोजन के लिए, Collation Precedence (ट्रांसएक्ट-एसक्यूएल) देखें।

हालांकि मैं इस उद्देश्य के लिए CAST(), CONVERT() या डेक्लेयर के साथ परिवर्तनीय घोषणा के उपयोग के लिए सही वाक्यविन्यास नहीं समझ सकता।

उत्तर

28
SELECT CAST('abc' AS varchar(5)) COLLATE French_CS_AS 
+0

धन्यवाद! :) 15thanks –

+0

यह यहां से आता है: http://msdn.microsoft.com/en-us/library/aa226054%28SQL.80%29.aspx – penguat

14

CAST या CONVERT ज़रूरत से ज़्यादा है!

SELECT N'abc' COLLATE French_CS_AS 

यह ज़रूरत से ज़्यादा है, क्योंकि अभी मिलान बदलते डेटा प्रकार NVARCHAR नहीं बदलता है।

3

यदि आप 2 और 1 बाइट, या उपाध्यक्ष के बीच बदल रहे हैं, तो चरित्र एन्कोडिंग तब CAST या कनवर्ट आवश्यक है। इन मामलों में यह अनिवार्य नहीं है।

जब स्रोत कॉलम 2 बाइट वर्ण अनुक्रम (nchar, nvarchar) है और चयन प्रक्षेपण एक बाइट वर्ण (चार, वर्कर) होना आवश्यक है, तो आपको कास्ट निर्दिष्ट करना चाहिए। प्रकार सिस्टम के बीच कास्टिंग से पहले संयोजन रूपांतरण लागू करें।

SELECT CAST(N'ФBC' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) AS ProjectedSingleByte 
संबंधित मुद्दे