2013-02-20 45 views
19

ईमेल मेज बुकिंग के अंतर्गत आता है और उसके परिभाषित के रूप में हमारे Microsoft SQL सर्वर में प्रकार "पाठ"पाठ, ntext, और छवि डेटा> प्रकार की तुलना नहीं की जा सकती है या, हल कर का उपयोग करते समय को छोड़कर शून्य है या की तरह> ऑपरेटर

SELECT email, 
COUNT(email) AS NumOccurrences 
FROM Booking 
GROUP BY email 
HAVING (COUNT(email) > 1) 

ऊपर क्वेरी चलाने के बाद मैं इस तरह त्रुटि संदेश मिला (बुकिंग में डुप्लिकेट ईमेल खोजने की कोशिश कर):

पाठ, ntext, और छवि डेटा प्रकार की तुलना नहीं की जा सकती है या छाँटे गए, सिवाय आईएस न्यूल या LIKE ऑपरेटर का उपयोग करते समय।

मैं Microsoft SQL

+2

है क्यों आपको ईमेल के लिए text' प्रयोग करते हैं '? _ "ntext, टेक्स्ट, और छवि डेटा प्रकार Microsoft SQL सर्वर के भविष्य के संस्करण में हटा दिए जाएंगे। इन डेटा प्रकारों का उपयोग करने से बचें" _ http://msdn.microsoft.com/en-us/library/ms187993.aspx ** आप 'text' ** द्वारा समूह नहीं कर सकते हैं: _" टाइप टेक्स्ट, एनटेक्स्ट, और छवि के कॉलम का उपयोग group_by_expression में नहीं किया जा सकता "_ http://msdn.microsoft.com/en-us/library/ms177673.aspx –

+0

कौन सा संस्करण क्या आप SQL सर्वर का उपयोग कर रहे हैं? –

+0

@TimSchmelter धन्यवाद लेकिन इसके पुराने और उत्पादन में, संभावना है कि हम इसे –

उत्तर

41

उपयोग कर रहा हूँ जब से तुम SQL Server उपयोग कर रहे हैं, क्यों नहीं VARCHAR(100) करने के लिए डेटा प्रकार बदल?

डेटाप्रकार बदले बिना इस त्रुटि को हल करने के लिए, TEXT or NTEXT स्तंभ है जब या तो ORDER BY खंड या एक SELECT बयान के GROUP BY खंड में प्रयोग किया जाता VARCHAR or NVARCHAR करने के लिए परिवर्तित किया जाना चाहिए। जैसे, जो alittle सा गन्दा

SELECT CAST(email AS NVARCHAR(100)) email, 
     COUNT(CAST(email AS NVARCHAR(100))) AS NumOccurrences 
FROM Booking 
GROUP BY CAST(email AS NVARCHAR(100)) 
HAVING COUNT(CAST(email AS NVARCHAR(100))) > 1 
संबंधित मुद्दे

 संबंधित मुद्दे