2010-04-01 12 views
26

Wie erkennt man, ob eine Zeichenfolge Sonderzeichen wie #, $, ^, &, *, @,! Enthält? usw. in SQL Server 2005?Wie erkennt man, ob eine Zeichenfolge Sonderzeichen enthält?

+3

Was ist für Sie * besondere * – Joey

+3

Jeder Charakter ist etwas Besonderes auf seine eigene Art und Weise. Sie müssen genauer sein. –

+1

Ok, jetzt heißt es »Worauf bezieht sich das> usw.?«. – Joey

Antwort

43

Unter der Annahme, SQL Server:

z.B. wenn Sie Klasse Sonderzeichen wie alles, was nicht alphanumerische:

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' 

Fügen Sie einfach auf andere Zeichen, die Sie nicht Klasse als Sonder, in den eckigen Klammern

+4

Diese Antwort verwirrte mich zuerst, weil sie' LIKE' verwendet, aber die^Zeichen in der Klammer bedeutet eigentlich "NICHT" – Baodad

+1

@AdaTheDev Wie schließen wir "-" von Sonderzeichen in diesem Szenario aus? – aaronmallen

+0

Vielen Dank, das funktioniert für mich. – Ziggler

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

+1: für usw.;) – Manish

+0

Schön, ich habe diesen Code verwendet, um mein Problem zu vereinfachen. Ich war für diese Suche ** A **: 'erklären @letra char (1) Satz @letra = 'a' SELECT col1 , col2 , col3 FROM Tabelle WHERE col1 LIKE '%' + @letra + '%' ODER col2 LIKE '%' + @letra + '%' ODER col3 wie '%' + @letra + '%' ' – Bachask8

Verwandte Themen