2010-04-01 24 views
26

यह पता लगाने के लिए कि क्या किसी स्ट्रिंग में विशेष वर्ण हैं जैसे #, $, ^, &, *, @ ,! एसक्यूएल सर्वर 2005 में आदि?किसी स्ट्रिंग में विशेष वर्ण होने पर कैसे पता लगाया जाए?

+3

क्या आप * विशेष विचार करते हैं * – Joey

+3

हर चरित्र खास है अपनी तरह से। आपको और अधिक विशिष्ट होना होगा। –

+1

ठीक है, अब यह हो जाता है »> क्या करता है <आदि का संदर्भ लें?«। – Joey

उत्तर

43

मान लिया जाये कि एसक्यूएल सर्वर:

उदा यदि आप वर्ग के लिए कुछ भी नहीं अक्षरांकीय विशेष वर्ण:

DECLARE @MyString VARCHAR(100) 
SET @MyString = 'adgkjb$' 

IF (@MyString LIKE '%[^a-zA-Z0-9]%') 
    PRINT 'Contains "special" characters' 
ELSE 
    PRINT 'Does not contain "special" characters' 

बस में जोड़ने के अन्य पात्रों आप के रूप में विशेष वर्ग नहीं में वर्ग कोष्ठकों में

+4

इस उत्तर ने मुझे पहले भ्रमित कर दिया, क्योंकि यह 'LIKE' का उपयोग करता है लेकिन^ब्रैकेट्स में चरित्र का अर्थ वास्तव में 'नहीं' – Baodad

+1

@AdaTheDev हम इस परिदृश्य में विशेष वर्णों से "-" कैसे बहिष्कृत करते हैं? – aaronmallen

+0

यह आपके लिए बहुत काम करता है। – Ziggler

1

पोस्टग्रेस्क्ल में आप WHERE क्लॉज में नियमित अभिव्यक्तियों का उपयोग कर सकते हैं। चेक http://www.postgresql.org/docs/8.4/static/functions-matching.html

MySQL कुछ समान है: http://dev.mysql.com/doc/refman/5.5/en/regexp.html

+0

यदि आपने कोई उदाहरण दिया है तो मैं आपके उत्तर को ऊपर उठाऊंगा !!! – DaveBoltman

19
SELECT * FROM tableName WHERE columnName LIKE "%#%" OR columnName LIKE "%$%" OR (etc.) 
+6

+1: आदि के लिए;) – Manish

+0

अच्छा, मैंने अपनी समस्या को सरल बनाने के लिए इस कोड का उपयोग किया। मैं इस बात के लिए देख रहा था ** एक **: '@letra चार (1) सेट @letra = 'ए' की घोषणा चयन col1 , col2 , col3 मेज से कहां col1 की तरह '%' + @letra + '%' या col2 LIKE '%' + @letra + '%' या col3 जैसे '%' + @letra + '%' ' – Bachask8

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