Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido:
En este módulo, usted aprenderá cómo mejorar las consultas para limitar las filas que regresan
y controlar el orden
A principios de este curso, se enteró de que, según la teoría relacional, conjuntos de datos no
incluyen ninguna
pedido, tendrá que añadir una cláusula ORDER BY de la sentencia SELECT. En este módulo,
usted aprenderá
En un módulo anterior, también aprendió cómo construir una cláusula FROM para devolver
filas de uno o más
mesas. Es poco probable que usted siempre querrá volver todas las filas de la fuente. Por
motivos de rendimiento,
así como las necesidades de la aplicación cliente o informe, tendrá que limitar el cual se
devuelven filas. Como
usted aprenderá en este módulo, puede limitar las filas con una cláusula WHERE basado en un
predicado, o puede
Al trabajar con datos del mundo real en sus consultas, puede encontrar situaciones en las que
los valores se están perdiendo.
Es importante escribir consultas que pueden manejar correctamente los valores perdidos. En
este módulo, usted aprenderá
Lección 1
Ordenar datos
En esta lección, aprenderá cómo agregar una cláusula ORDER BY a sus consultas para controlar
el orden de las filas
Objetivos de la lección
teoría relacional.
Cláusula ORDER BY
SELECT <select_list>
FROM <table_source>
y el cuidado necesario para mantener la lista ORDER BY al día con los cambios hechos a la
Las columnas no detallados en la lista SELECT, sino que forma parte de las tablas listadas en
la cláusula FROM. Si la consulta utiliza
una opción DISTINCT, las columnas en la lista ORDER BY debe encontrarse en la lista SELECT.
Nota: ORDER BY puede también incluir una cláusula COLLATE, que proporciona una forma para
ordenar por un
Además de especificar las columnas que deben utilizarse para determinar el orden de
clasificación, también puede controlar
la dirección de la especie a través de la utilización de ASC para ascender (A-Z, 0-9) o DESC para
descendente (Z-A, 9-
0). Clases ascendentes son el valor predeterminado. Cada columna puede estar provista de
una orden por separado, como en el
siguiente ejemplo.
Los empleados serán listados desde el más reciente de alquiler al menos reciente, con los
empleados contratados en la misma fecha
USO TSQL;
IR
DESDE hr.employees
Documentación adicional en la cláusula ORDER BY se puede encontrar en los libros en línea en:
ORDER BY (cláusula de Transact-SQL)
http://go.microsoft.com/fwlink/?LinkID=402718
de la siguiente manera:
Cláusula ORDER BY
ORDER BY <order_by_list>
módulo.
La mayoría de las variaciones de ORDER BY se producirán en la lista ORDER BY. Para especificar
columnas por su nombre, con el valor por defecto
ORDER BY Lista
Para especificar columnas por alias definidos en la cláusula SELECT, utilice la siguiente sintaxis:
ORDER BY un Alias
ORDER BY alias1;
DESDE Sales.Orders
ORDER BY orderyear;
Nota: Consulte el tema anterior para la sintaxis y el uso de ASC o DESC para controlar el orden
de clasificación.
nombre:
ORDER BY Ejemplo
DESDE Sales.Orders
ORDER BY OrderDate;
Una consulta en la tabla Sales.Orders, que define un alias en la cláusula SELECT y clases por ese
alias de columna:
ORDER BY Ejemplo
DESDE Sales.Orders
Una consulta en la tabla Sales.Orders, que ordena la salida con el fin de OrderDate
descendente (es decir,
ORDER BY Ejemplo
DESDE Sales.Orders
Una consulta en la tabla hr.employees, que ordena los empleados en orden descendente de la
fecha de contratación (que
es, más reciente al más antiguo), con apellido de diferenciar los empleados contratados en la
misma fecha:
ORDER BY Ejemplo
DESDE hr.employees
Pasos de demostración
3. Inicie SQL Server Management Studio y conéctese a la instancia de motor de base de MIA-
SQL utilizando
La autenticación de Windows.
Pregunta: ¿El orden físico de filas en una tabla de SQL Server garantiza ninguna orden de
clasificación en
tabla que aparece en la cláusula FROM. Esto es especialmente cierto a medida que aumentan
los volúmenes de datos. Para limitar las filas que son
Volverá, por lo general va a utilizar la cláusula WHERE en la sentencia SELECT. En esta lección,
aprenderá
cómo construir cláusulas WHERE para filtrar las filas que no coinciden con el predicado.
Objetivos de la lección
consideraciones en mente:
condición, evaluando a VERDADERO o FALSO. (Esto cambiará cuando se trabaja con valores
perdidos o NULL.
Sólo las filas para las que el predicado se evalúa como TRUE se pasarán a través del filtro.
procesado antes de otras cláusulas como SELECT. Una consecuencia de esto es que la cláusula
en la que se
incapaz de hacer referencia a los alias de columnas creadas en la cláusula SELECT. Si ha creado
expresiones en el
Por ejemplo, la siguiente consulta, que utiliza una expresión calculada sencilla en la lista
SELECT, se ejecutará
correctamente:
Filtrado Ejemplo
DESDE Sales.Orders
DESDE Sales.Orders
El mensaje de error indica que el uso del alias de columna en la línea 3 del lote:
impacto en SQL Server. En lugar de devolver todas las filas al cliente para el post-
procesamiento, una cláusula where causas
SQL Server para filtrar los datos en el servidor. Esto puede reducir el tráfico de red y el uso de
memoria en el
cliente. Desarrolladores y administradores de SQL Server también pueden crear índices para
apoyar de uso común
DONDE <search_condition>
de la siguiente manera:
Por ejemplo, el siguiente fragmento de código muestra una cláusula WHERE que filtrará sólo
los clientes de
España:
DESDE Sales.Customers
DESDE Sales.Orders
Nota: La representación de fechas como cadenas delimitadas por comillas serán cubiertos
en el módulo siguiente.
Además de utilizar los operadores lógicos, literales, o constantes en una cláusula WHERE,
también puede utilizar varios TSQL
opciones en el predicado:
patrón especificado.
CIERTO.
Nota: El uso de LIKE para que coincida con los patrones en los datos basados en caracteres se
tratarán en la próxima
módulo.
El siguiente ejemplo muestra el uso del operador OR para combinar condiciones en una
cláusula WHERE:
DESDE Sales.Customers
El siguiente ejemplo se modifica la consulta anterior para utilizar el operador IN para los
mismos resultados:
DESDE Sales.Customers
Operador NO
DESDE Sales.Customers
Rango Ejemplo
DESDE Sales.Orders
ENTRE Operador
DESDE Sales.Orders
Nota: El uso de operadores de comparación con los tipos de datos de fecha y hora requiere
especial
Pasos de demostración
2. Si SQL Server Management Studio no está abierto, iniciarlo y conectarse a la base de datos
MIA-SQL
Lección 3
En la lección anterior, usted escribió consultas que filtran filas sobre la base de los datos
almacenados en su interior. Puedes
también escribir consultas que rangos de filtro de filas, ya sea basado en un número específico
para recuperar o uno gama de
filas a la vez. En esta lección, aprenderá cómo limitar rangos de filas en la cláusula SELECT
utilizando un TOP
opción. También aprenderá cómo limitar rangos de filas utilizando la opción OFFSET-FETCH de
un ORDER BY
cláusula.
Objetivos de la lección
de la siguiente manera:
TOP Opción
FROM <table_source>
DONDE <search_condition>;
Por ejemplo, para recuperar sólo los cinco pedidos más recientes de la tabla Sales.Orders,
utilice la siguiente
consulta:
TOP Ejemplo
DESDE Sales.Orders
Tenga en cuenta que el operador TOP depende de una cláusula ORDER BY para proporcionar
prioridad significativa para el
filas seleccionadas. En ausencia de ORDER BY, no hay garantía de que serán devueltos filas. en
el
ejemplo anterior, las cinco órdenes podría ser devuelto si no había una cláusula ORDER BY.
Además de especificar un número fijo de filas a devolver, la palabra clave TOP también acepta
el CON
Opción TIES, que recuperará las filas con los valores que se pueden encontrar en las N filas
superiores seleccionados.
Por ejemplo, la siguiente consulta devolverá cinco filas con las fechas más recientes orden:
DESDE Sales.Orders
Los resultados muestran cinco filas con dos valores distintos FechaPedido:
Sin embargo, mediante la adición de la opción con vínculos con la cláusula TOP, verás que más
filas califican para el
DESDE Sales.Orders
valores únicos.
Para devolver un porcentaje de la cantidad de filas, utilice la opción CIENTO con TOP en lugar
de un número fijo.
Por ejemplo, si la tabla Sales.Orders contiene 830 pedidos, la siguiente consulta devolverá 83
filas:
DESDE Sales.Orders
TOP (N) por ciento también se puede usar con la opción CON LAZOS.
Nota: TOP (N) POR CIENTO redondeará al número entero más próximo a los efectos de
recuento de filas.
TOP (Transact-SQL)
http://go.microsoft.com/fwlink/?LinkID=402719
filas.
añadido una nueva opción a SQL Server 2012 - la ampliación de la ORDEN OFFSET-FETCH POR
cláusula.
Como TOP, OFFSET-FETCH le permite devolver sólo una gama de las filas seleccionadas por su
consulta. Sin embargo,
me gustaría volver (un valor podido recuperar). Esto proporciona una técnica conveniente para
paginación a través de resultados.
Cuando la paginación, tendrá que tener en cuenta que cada consulta con un desplazamiento-
FETCH carreras cláusula
Como se verá en el siguiente tema, OFFSET-FETCH se ha escrito para permitir que un Inglés
más natural
Para obtener más información acerca de la cláusula OFFSET-FETCH, vaya a la sección Uso
OFFSET y FETCH para limitar
las filas devueltas en Libros en línea en:
http://go.microsoft.com/fwlink/?LinkID=402718
OFFSET-FETCH Sintaxis
de la siguiente manera:
OFFSET {integer_constant |
ejemplo:
Este ejemplo se saltará las primeras 10 filas y luego devolver los próximos 10 filas, según lo
determinado por la fecha de la orden:
DESDE Sales.Orders
Como se puede ver en la definición de sintaxis, se requiere la cláusula OFFSET, pero la cláusula
FETCH no lo es. Si el
FETCH cláusula se omite, se devolverán todas las filas siguientes offset. Usted también
encontrará que las palabras clave
ROW y ROWS son intercambiables, ya que son los primeros y NEXT, que permite una sintaxis
más natural.
Para asegurar resultados exactitud, especialmente a medida que "se mueve" de la página a la
página de los datos, es importante
construir una cláusula ORDER BY que proporcionará ordenamiento único y producir un
resultado determinista. Pese A
contar expresiones en forma de variables o parámetros. Usted aprenderá más acerca de las
variables y
Los siguientes son algunos ejemplos del uso de offset FETCH en las consultas de T-SQL, todos
los cuales utilizan el TSQL
Para recuperar las 50 filas más recientes según lo determinado por la fecha de la orden, esta
consulta se inicia con un desplazamiento de
DESDE Sales.Orders
DESDE Sales.Orders
Nota: A diferencia de los encontrados en los módulos anteriores, los ejemplos de OFFSET-
FETCH debe ser
ejecutada por SQL Server 2012 o posterior. OFFSET-FETCH no se admite en SQL Server 2008 R2
o
más temprano.
Demostración: Filtrado de datos con TOP y OFFSET-FETCH
Pasos de demostración
2. Si SQL Server Management Studio no está abierto, iniciarlo y conectarse a la base de datos
MIA-SQL
Lección 4
hacer frente a los casos en que se desconoce el resultado de un predicado. En esta lección,
aprenderá con valores de tres
lógica representa valores desconocidos y desaparecidos, cómo SQL Server utiliza NULL para
marcar valores perdidos, y
Objetivos de la lección
o falsa.
inicial del segundo nombre que no ha sido suministrado por un empleado. También es posible
que falte, pero inaplicables, como
el valor de una inicial del segundo nombre para un empleado que no tiene nombre. En ambos
casos, SQL Server marcará
el valor faltante como NULL. Un NULL no es ni verdadero ni falso, sino una marca para
DESCONOCIDO, que
X e Y. Pero, ¿qué retorno de SQL Server para la expresión X> Y cuando Y está faltando? SQL
Server devolverá
un desconocido, marcado como NULL. Usted tendrá que tener en cuenta la posible presencia
de NULL en su
la lógica de predicados, así como en los valores almacenados en las columnas marcadas con
NULL. Usted tendrá que escribir
consultas que utilizan lógica trivalente para dar cuenta de tres resultados posibles - TRUE,
FALSE, y
DESCONOCIDO.
el valor de N es NULL.
DESDE hr.employees
ORDER BY ASC región; Orden de clasificación --Ascending incluye explícitamente para mayor
claridad.
Esto devuelve la siguiente, con todos los empleados cuya región no se encuentra (marcado
como NULL) ordenados primero:
----------- --------------------
5 Buck NULL
6 Suurs NULL
7 Rey NULL
9 Dolgopyatova NULL
8 Cameron WA
1 Davis WA
2 Funk WA
3 Lew WA
4 Peled WA
Nota: Una pregunta común acerca de cómo controlar la visualización de NULL en las consultas
es si
NULL se puede obligar a la final de un conjunto de resultados. Como puede ver, la cláusula
ORDER BY ordena la
ORDER BY trata NULL como si fueran el mismo valor y siempre ordena NULL juntos,
poniéndolos
primero en una columna. Asegúrese de probar los resultados de las consultas en el que la
columna que se utiliza para
• En las consultas ANSI conformes, un NULL nunca es equivalente a otro valor, incluso otro
NULL. Consultas
escrita para probar NULL con una igualdad dejará de devolver los resultados correctos.
DESDE hr.employees
----------- --------------------
Utilice el IS NULL (o no es nulo) del operador en lugar de los iguales (no igual).
DESDE hr.employees
5 Buck NULL
6 Suurs NULL
7 Rey NULL
9 Dolgopyatova NULL
Prueba de NULL.
Pasos de demostración
2. Si SQL Server Management Studio no está abierto, iniciarlo y conectarse a la base de datos
MIA-SQL
METRO