Pattern Matching in Search Conditions
Normalmente usamos LIKE con el símbolo % para indicar que nuestra búsqueda deberá coincidir hasta cierto punto.
El siguiente ejemplo
SELECT [EmployeeID] ,[LastName] ,[FirstName] ,[MiddleInitial] ,[SSN] FROM [Employee] WHERE LastName LIKE 'Ste%'
Retornará
EmployeeID LastName FirstName MiddleInitial SSN----------- ------------------------------ ----------------------------- ------------- -----------1 Stein Nidprxmvtyjnat 123-07-995114 Stein Qfgakkjblwfbkb 763-07-943127 Stein Ysscitlqms 590-07-891140 Stein Txhqy 437-07-8391
Pero el signo % no es el único que podemos usar. SQL server incluye los siguientes comodines.
Wildcard
|
Comportamiento
|
|---|---|
%
|
Cualquier string de cero o más caracteres.
|
_
|
Un caracter solamente.
|
[ ]
|
Un rango.
|
[^]
|
Un caracter que no este dentro del rango
|
En la siguiente condición SSN deberá no iniciarse con "1", en la siguiente posición deberá existir un número comprendido entre 0 y 9, la tercera posición deberá ser un número comprendido entre 4 y 8, en las siguientes 4 posiciones podrá ser cualquier cosa, pero a continuación deberá ser solamente un "9", el resto no nos interesa.
SELECT [EmployeeID] ,[LastName] ,[FirstName] ,[MiddleInitial] ,[SSN] FROM [Employee] WHERE SSN LIKE '[^1][0-9][4-8]____9%'
Este será el resultado
EmployeeID LastName FirstName MiddleInitial SSN----------- ------------------------------ ----------------------------- ------------- -----------2 Eflin Ysgphbplbhoksy 327-07-99117 Makai Lnudwgnbtoyvix 467-07-971124 Infante Raluqhoqtkd 967-07-9031251 Stein Nidprxmvtyjnat 247-06-9951255 Olphant Tqbigir 857-06-9791