Cómo: Combinar condiciones cuando OR tiene prioridad
Para vincular condiciones con OR y darles prioridad frente a las condiciones vinculadas con AND, debe repetir la condición AND para cada condición OR.
Imagine, por ejemplo, que desea buscar a todos los empleados que han estado en la compañía más de cinco años y que tienen puestos de nivel bajo o están jubilados.Esta consulta requiere tres condiciones, una única condición vinculada a dos condiciones adicionales con AND:
Empleados con una fecha de contratación anterior a un período de cinco años, y
Empleados con un puesto de nivel 100 o cuyo estado sea "R" (retirado).
El siguiente procedimiento ilustra el modo de crear este tipo de consulta en el panel Criterios.
[!NOTA]
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.
Para combinar condiciones cuando OR tiene precedencia
En el panel Criterios, agregue las columnas de datos en las que desee realizar la búsqueda.Si desea buscar en la misma columna utilizando dos o más condiciones vinculadas con AND, debe agregar el nombre de la columna de datos una vez por cada valor que desee buscar.
Cree las condiciones que se van a vincular con OR especificando la primera de ellas en la columna de cuadrícula Filtro y la segunda (y siguientes), en distintas columnas O….Por ejemplo, para vincular condiciones con OR que busquen en la columnas job_lvl y status, especifique = 100 en la columna Filtro para job_lvl y = 'R' en la columna O... para status.
Al especificar estos valores en la cuadrícula, se genera la siguiente cláusula WHERE en la instrucción del panel SQL:
WHERE (job_lvl = 100) OR (status = 'R')
Cree la condición AND especificándola una vez para cada condición OR.Incluya todas las entradas en la misma columna de cuadrícula que la condición OR con la que se corresponden.Por ejemplo, para agregar una condición AND que busque en la columna hire_date y se aplique a ambas condiciones OR, especifique < '1/1/91' tanto en la columna Criterios como en la columna O…
Al especificar estos valores en la cuadrícula, se genera la siguiente cláusula WHERE en la instrucción del panel SQL:
WHERE (job_lvl = 100) AND (hire_date < '01/01/91' ) OR (status = 'R') AND (hire_date < '01/01/91' )
Sugerencia Puede repetir una condición AND agregándola una vez y después utilizar los comandos Cortar y Pegar del menú Edición para repetirla en otras condiciones OR.
La cláusula WHERE creada por el Diseñador de consultas y vistas es equivalente a la siguiente cláusula WHERE, en la que se utilizan paréntesis para especificar la prioridad de OR frente a AND:
WHERE (job_lvl = 100 OR status = 'R') AND
(hire_date < '01/01/91')
[!NOTA]
Si especifica condiciones de búsqueda en el formato arriba mostrado en el Panel SQL, pero luego modifica la consulta en los paneles Diagrama o Criterios, el Diseñador de consultas y vistas vuelve a crear la instrucción SQL para hacerla coincidir con la forma en que la condición AND se distribuye explícitamente a ambas condiciones OR.
Vea también
Referencia
Operadores de comparación (Visual Database Tools)
Conceptos
Convenciones para combinar condiciones de búsqueda en el panel de criterios