निम्नलिखित एसक्यूएल:
SELECT notes + 'SomeText'
FROM NotesTable a
त्रुटि दें:
डेटा प्रकार nvarchar और पाठ जोड़ें ऑपरेटर में असंगत हैं।
जवाबों:
आप NULL मानों पर भी विचार कर सकते हैं। आपके उदाहरण में, यदि कॉलम नोट में अशक्त मूल्य है, तो परिणामी मूल्य NULL होगा। यदि आप चाहते हैं कि रिक्त मान रिक्त स्ट्रिंग्स के रूप में व्यवहार करें (ताकि उत्तर 'SomeText' निकल जाए), तो IsNull फ़ंक्शन का उपयोग करें:
Select IsNull(Cast(notes as nvarchar(4000)),'') + 'SomeText' From NotesTable a
यदि आप SQL सर्वर 2005 या अधिक का उपयोग कर रहे हैं, तो नोट्स फ़ील्ड में डेटा के आकार के आधार पर, आप एक विशिष्ट लंबाई के लिए कास्टिंग के बजाय nvarchar (अधिकतम) पर विचार करना चाह सकते हैं, जिसके परिणामस्वरूप स्ट्रिंग ट्रंकेशन हो सकता है।
Select Cast(notes as nvarchar(max)) + 'SomeText' From NotesTable a
एक अन्य विकल्प CONCAT कमांड है:
SELECT CONCAT(MyTable.TextColumn, 'Text') FROM MyTable
यदि आप SQL सर्वर 2005 (या अधिक) का उपयोग कर रहे हैं, तो आप अपनी तालिका परिभाषा में NVARCHAR (MAX) पर स्विच करने पर विचार कर सकते हैं; SQL सर्वर 2000 के TEXT, NTEXT और IMAGE डेटा प्रकार को SQL सर्वर के भविष्य के संस्करणों में पदावनत किया जाएगा। SQL सर्वर 2005 डेटा प्रकारों के लिए पिछड़ी संगतता प्रदान करता है, लेकिन आपको संभवतः इसके बजाय VARCHAR (MAX), NVARCHAR (MAX) और VARBINARY (MAX) का उपयोग करना चाहिए।
textएक "विशाल" 4000 के रूप में कास्टिंग कर रहे हैंnvarcharयह सुनिश्चित करने के लिए कि लगभग कुछ भी फिट होगा?