Este documento describe la cláusula WHERE en SQL de Access. La cláusula WHERE especifica los criterios que deben cumplir los valores de campo en los registros incluidos en los resultados de la consulta. El artículo proporciona ejemplos de cómo limitar los resultados mediante criterios en la cláusula WHERE y cómo combinar orígenes de datos con esta cláusula.
0 calificaciones0% encontró este documento útil (0 votos)
16 vistas7 páginas
Este documento describe la cláusula WHERE en SQL de Access. La cláusula WHERE especifica los criterios que deben cumplir los valores de campo en los registros incluidos en los resultados de la consulta. El artículo proporciona ejemplos de cómo limitar los resultados mediante criterios en la cláusula WHERE y cómo combinar orígenes de datos con esta cláusula.
Este documento describe la cláusula WHERE en SQL de Access. La cláusula WHERE especifica los criterios que deben cumplir los valores de campo en los registros incluidos en los resultados de la consulta. El artículo proporciona ejemplos de cómo limitar los resultados mediante criterios en la cláusula WHERE y cómo combinar orígenes de datos con esta cláusula.
Este documento describe la cláusula WHERE en SQL de Access. La cláusula WHERE especifica los criterios que deben cumplir los valores de campo en los registros incluidos en los resultados de la consulta. El artículo proporciona ejemplos de cómo limitar los resultados mediante criterios en la cláusula WHERE y cómo combinar orígenes de datos con esta cláusula.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 7
Access SQL: cláusula WHERE
Éste es uno de varios artículos acerca de Access SQL. Este
artículo describe cómo escribir una cláusula WHERE y brinda ejemplos para demostrar las diferentes técnicas que puede usar en una cláusula WHERE.
En una instrucción SQL, la cláusula WHERE especifica los
criterios que deben cumplir los valores de campo para los registros que contienen los valores que se van a incluir en los resultados de la consulta.
Para obtener información general sobre Access SQL, vea el
artículo Access SQL: conceptos básicos, vocabulario y sintaxis. Para obtener más información acerca de otras partes de Access SQL, consulte la sección Vea también.
En este artículo
Limitar los resultados mediante la especificación de criterios
Sintaxis de la cláusula WHERE
Usar la cláusula WHERE para combinar orígenes de datos
Limitar los resultados mediante la especificación de criterios
Cuando desea usar datos para limitar el número de registros que
se devuelven en una consulta, puede usar criterio. Un criterio de consulta es similar a una fórmula, se trata de una cadena que puede constar de referencias de campo, operador y constante. Los criterios de consulta son un tipo de expresión
clausula having sql
La cláusula WHERE se aplica primero a las filas individuales de las tablas u objetos con valores de tabla del panel Diagrama. Solo se agrupan las filas que cumplen las condiciones de la cláusula WHERE. La cláusula HAVING se aplica a continuación a las filas del conjunto de resultados. Solo aparecen en el resultado de la consulta los grupos que cumplen las condiciones HAVING. Solo puede aplicar una cláusula HAVING a las columnas que también aparecen en la cláusula GROUP BY o en una función de agregado. Imagine, por ejemplo, que va a combinar las tablas titles y publishers para crear una consulta que muestre el precio medio de los libros de un conjunto de editoriales. Solo desea ver el precio medio de un conjunto específico de editoriales: las del estado de California, por ejemplo. Y además, solo quiere ver el precio medio si éste es superior a 10,00 USD. Puede establecer la primera condición incluyendo una cláusula WHERE, que descarta todas las editoriales que no están en California, antes de calcular los precios medios. La segunda condición requiere una cláusula HAVING, ya que se basa en los resultados de la agrupación y del resumen de los datos. La instrucción SQL resultante podría tener la forma siguiente:
SELECT titles.pub_id, AVG(titles.price)
FROM titles INNER JOIN publishers ON titles.pub_id = publishers.pub_id WHERE publishers.state = 'CA' GROUP BY titles.pub_id HAVING AVG(price) > 10 AVG (Transact-SQL)
Aplica la función de agregado a todos los valores. ALL es el
valor predeterminado. DISTINCT Especifica que AVG se ejecute solo en cada instancia única de un valor, sin importar el número de veces que aparezca el valor. expression Es una expresión de la categoría de tipo de datos numérico exacto o aproximado, excepto para el tipo de datos bit. No se permiten funciones de agregado ni subconsultas. OVER ( [ partition_by_clause ] order_by_clause) partition_by_clause divide el conjunto de resultados generado por la cláusula FROM en particiones a las que se aplica la función. Si no se especifica, la función trata todas las filas del conjunto de resultados de la consulta como un único grupo. order_by_clause determina el orden lógico en el que se realiza la operación. order_by_clause es obligatorio. Para obtener más información, vea OVER (cláusula de Transact-SQL). Tipos devueltos El tipo de valor devuelto viene determinado por el tipo del resultado evaluado de expression. Resultado de la Tipo de valor devuelto expresión
tinyint int
smallint int
int int
bigint bigint
Categoría decimal (p, s) decimal(38, s) dividido
por decimal(10, 0)
Categoría money y small money money
Categoría float y real float COUNT (Transact-SQL)
Devuelve el número de elementos de un grupo. COUNT funciona
como la función COUNT_BIG. La única diferencia entre ambas funciones está en los valores devueltos. COUNT siempre devuelve un valor de tipo de datos int. COUNT_BIG siempre devuelve un valor de tipo de datos bigint. Convenciones de sintaxis de Transact-SQL Sintaxis COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } ) OVER ( [ partition_by_clause ] order_by_clause ) Argumentos ALL Aplica la función de agregado a todos los valores. ALL es el valor predeterminado. DISTINCT Especifica que COUNT devuelva el número de valores únicos no NULL. expression Es una expression de cualquier tipo excepto text, image o ntext. No se permite utilizar funciones de agregado ni subconsultas. * Especifica que se deben contar todas las filas para devolver el número total de filas de una tabla. COUNT(*) no acepta parámetros y no se puede utilizar con DISTINCT. COUNT(*) no requiere un parámetro expression porque, por definición, no utiliza información sobre ninguna columna específica. COUNT(*) devuelve el número de filas de una tabla especificada sin deshacerse de las duplicadas. Cuenta cada fila por separado. Esto incluye las filas que contienen valores NULL. ALL en SQL
Si hay alguna silla en la columna Antigüedades, la subconsulta
devolverá una o varias filas, haciendo la cláusula EXISTS verdadera, haciendo que SQL liste los antigüos propietarios. Si no ha habido sillas, ninguna fila será devuelta por la subconsulta.
ALL es otra construcción poco usual , como las consultas ALL
pueden ser usadas con diferentes y simples métodos, veamos un ejemplo de consulta:
SELECT ID_COMPRADOR, PRODUCTO
FROM ANTIGÜEDADES WHERE PRECIO = ALL (SELECT PRECIO FROM ANTIGÜEDADES);
Esto devolverá el precio de producto más alto (o más de un
producto si hay un empate), y su comprador. La subconsulta devuelve una lista de todos los precios de la tabla Antigüedades, y la consulta de salida va fila por fila de la tabla Antigüedades y si el precio es mayor o igual a todos (o ALL) precios en la lista, es listado, dando el precio del producto más caro. La razón de "=" es que el mayor precio en la lista puede ser igual al de la lista, ya que este producto está en la lista de precios.
EXISTS (Transact-SQL)
A.Utilizar NULL en una subconsulta para seguir devolviendo un
conjunto de resultados En el ejemplo siguiente se devuelve un conjunto de resultados con NULL especificado en la subconsulta, que se sigue evaluando como TRUE al utilizar EXISTS. USE AdventureWorks2012 ; GO SELECT DepartmentID, Name FROM HumanResources.Department WHERE EXISTS (SELECT NULL) ORDER BY Name ASC ; B.Comparar consultas mediante EXISTS e IN En el ejemplo siguiente se comparan dos consultas que son semánticamente equivalentes. En la primera consulta se utiliza EXISTS y en la segundaIN. USE AdventureWorks2012 ; GO SELECT a.FirstName, a.LastName FROM Person.Person AS a WHERE EXISTS (SELECT * FROM HumanResources.Employee AS b WHERE a.BusinessEntityID = b.BusinessEntityID AND a.LastName = 'Johnson'); GO En la siguiente consulta se usa IN. USE AdventureWorks2012 ; GO SELECT a.FirstName, a.LastName FROM Person.Person AS a WHERE a.LastName IN (SELECT a.LastName FROM HumanResources.Employee AS b WHERE a.BusinessEntityID = b.BusinessEntityID AND a.LastName = 'Johnson'); GO Este es el conjunto de resultados de las consultas. FirstName LastName -------------------------------------------------- ---------- Barry Johnson David Johnson Willis Johnson (3 row(s) affected) .