2010-06-03 26 views
9

que estoy trabajando con SQL Server 2005.consulta SQL para encontrar filas con caracteres especiales sólo

necesito para averiguar sólo las filas para las que existe un carácter especial en la columna de “cuerpo”. En el siguiente escenario, el resultado debería ser solo la fila con TemplateID = 2. ¿Cómo escribimos la consulta para esto?

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

Cualquier cosa que no sea el siguiente es un carácter especial para este escenario

1) Alphabtes 

2) Digits 

3) Space 

Respuesta

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

Las cosas entre los soportes dice números (0-9), alfas minúsculas (az), alfas mayúsculas (AZ) y el espacio. El "^" hace que un "NO" sea una de estas cosas. Tenga en cuenta que esto es diferente, aunque no como '% [0-9a-zA-Z]%'

Cuestiones relacionadas