A menudo, para filtrar datos, necesitaremos tomar muestras no por la coincidencia exacta de la condición, sino por un valor aproximado. Es decir, cuando, por ejemplo, buscamos un producto cuyo nombre coincida con un determinado patrón (expresión regular) o contenga determinados símbolos o palabras. Para tales fines, existe un operador LIKE en SQL, que busca valores aproximados. Para construir dicho patrón, se utilizan metacaracteres (caracteres especiales, para buscar parte del valor), a saber: "signo de porcentaje" (%) o asterisco (*), "guión bajo" (_) o "signo de interrogación" (?) , "corchetes" ([ ]).
Por ejemplo, seleccionemos registros de nuestra tabla que se relacionen únicamente con productos que contengan la palabra Esquís en su nombre. Para ello, crearemos una plantilla adecuada:
Run SQLSELECT *
FROM Sumproduct
WHERE Product LIKE '*Skis*'
Como puede ver, el DBMS seleccionó solo aquellos registros donde la columna Producto contenía productos que contenían la palabra Esquís.
Se utiliza un guión bajo o un signo de interrogación para reemplazar un solo carácter en una palabra. Reemplacemos todas las vocales de la palabra Bicicletas con un "signo de interrogación" (?) y veamos el resultado:
Run SQLSELECT *
FROM Sumproduct
WHERE Product LIKE 'B?k?s'
El metacarácter de corchete ([ ]) se utiliza para especificar simultáneamente un conjunto de caracteres para realizar la búsqueda.
SELECT *
FROM Sumproduct
WHERE City LIKE '[TN]*'
En el ejemplo anterior, seleccionamos registros donde los nombres de las ciudades comienzan con la letra T o N en el campo City.
Además, en este caso, podemos utilizar otro metacarácter que haga lo contrario. Agreguemos un signo de exclamación (!) a nuestra expresión regular, que significará "no igual" (para MS Access) o un signo de poder (^) (para otros DBMS).
SELECT *
FROM Sumproduct
WHERE City LIKE '[!TN]*'
Es decir, la última consulta que creamos se leerá como: seleccione todas las columnas de la tabla Sumproduct, y solo aquellos registros donde los nombres de las ciudades en el campo City no comiencen con las letras T o N. Además, observamos que la El conjunto de letras en el metacarácter "corchetes" corresponde solo a una posición en el texto.
Podemos obtener un resultado similar si usamos el operador NOT que ya conocemos, pero con un signo de exclamación (!) el registro será más corto.