2010-06-03 149 views
9

我與SQL Server 2005SQL查詢的特殊字符只有

我需要找出那些只針對其存在的「身體」列中的特殊字符行工作找到行。在以下情況下,結果應僅爲TemplateID = 2的行。 我們如何爲此編寫查詢?除下列其他

CREATE TABLE #Template (TemplateID INT, Body VARCHAR(100)) 

INSERT INTO #Template (TemplateID,Body) VALUES (1,'abcd 1234') 

INSERT INTO #Template (TemplateID,Body) VALUES (2,'#^[email protected]') 

一切皆有對於這種情況

1) Alphabtes 

2) Digits 

3) Space 

回答

28
SELECT 
    TemplateID, 
    Body 
FROM 
    #Template 
WHERE 
    Body LIKE '%[^0-9a-zA-Z ]%' 

的括號內的東西,說一個特殊字符數字(0-9),小寫阿爾法(亞利桑那州),大寫字母阿爾法(AZ)和空間。 「^」使這個「不」成爲這些東西之一。請注意,這是不同的,雖然不喜歡'%[0-9a-zA-Z]%'