2010-06-03 5 views
9

sto lavorando con SQL Server 2005.query SQL per la ricerca di file con i caratteri speciali solo

ho bisogno di sapere solo le righe per i quali v'è un carattere speciale nella colonna “Body”. Nel seguente scenario, il risultato dovrebbe essere solo la riga con TemplateID = 2. Come scrivere la query per questo?

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]') 

Qualcosa di diverso da ciò che segue è un carattere speciale per questo scenario

1) Alphabtes 

2) Digits 

3) Space 

risposta

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

La roba tra le parentesi dice numeri (0-9), alfa minuscole (az), alfa maiuscoli (AZ) e lo spazio. Il "^" rende quella "NOT" una di queste cose. Si noti che questo è diverso da NOT LIKE '% [0-9a-zA-Z]%'

Problemi correlati