condicionando y ordenando datos -...

30
M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-1 Condicionando y ordenando datos 3 Condicionando y ordenando datos 3-1 SQL Server Condicionando y Condicionando y Ordenando datos Ordenando datos

Upload: others

Post on 01-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-1

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--11 SQL Server

Condicionando y Condicionando y Ordenando datosOrdenando datos

Page 2: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-2

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--22 SQL Server

Objetivos Objetivos

•• Al completar esta lección, deberá ser Al completar esta lección, deberá ser capaz de hacer lo siguiente :capaz de hacer lo siguiente :–– Limitar los renglones recuperados Limitar los renglones recuperados

por una consultapor una consulta–– Ordenar los renglones recuperados Ordenar los renglones recuperados

por una consultapor una consulta

Page 3: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-3

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--33 SQL Server

Limitando los Renglones utilizando Limitando los Renglones utilizando una Selecciónuna Selección

"…recupera "…recupera todos los todos los

empleados del empleados del departamento 10"departamento 10"

EMPEMPEMPNO ENAME JOB ... DEPTNO

7839 KING PRESIDENT 107698 BLAKE MANAGER 307782 CLARK MANAGER 107566 JONES MANAGER 20...

EMPEMPEMPNO ENAME JOB ... DEPTNO

7839 KING PRESIDENT 107782 CLARK MANAGER 107934 MILLER CLERK 10

Limitando los Renglones utilizando una SelecciónEn el ejemplo, se muestran todos los empleados del departamento 10. Sólo los registros con un valor de 10 en la columna DEPTNO sean mostrados. Esta forma de restricción es la base de la cláusula WHERE en SQL.

Page 4: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-4

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--44 SQL Server

Limitando RenglonesLimitando Renglones

–– Para restringir los renglones utilice la cláusula Para restringir los renglones utilice la cláusula WHERE.WHERE.

–– La cláusula WHERE se coloca después de la La cláusula WHERE se coloca después de la cláusula FROM.cláusula FROM.

SELECT [DISTINCT] {*, column [alias], ...}FROM table[WHERE condition(s)];

Limitando RenglonesPuede restringir los renglones retornados por una consulta utilizando la cláusula WHERE. Una cláusula WHERE contiene una condición que debe ser cumplida por cada registro en la tabla, y va después de la cláusula FROM.

Sintaxis :WHERE restringe la consulta, y muestra solo aquellos que

cumplan la condición.condition está compuesta por nombres de columnas, expresiones,

constantes y operadores de comparación.

Page 5: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-5

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--55 SQL Server

Utilizando la cláusula WHEREUtilizando la cláusula WHERE

SELECT ename, job, deptnoFROM empWHERE job='CLERK';

ename job deptno---------- --------- ---------JAMES CLERK 30SMITH CLERK 20ADAMS CLERK 20MILLER CLERK 10

Utilizando la cláusula WHEREEn el ejemplo, la consulta recupera el nombre, el puesto y el número de departamento de aquellos empleados cuyo puesto sea CLERK.Note que la palabra CLERK fue especificada en mayúsculas, para que existan renglones que cumplan la condición.

Page 6: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-6

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--66 SQL Server

Cadenas de caracteres y fechasCadenas de caracteres y fechas

–– Las cadenas de caracteres y fechas se encierran Las cadenas de caracteres y fechas se encierran entre comillas simplesentre comillas simples

–– Las cadenas de caracteres son sensibles a las Las cadenas de caracteres son sensibles a las mayúsculasmayúsculas

SELECT ename, job, deptnoFROM empWHERE ename = 'JAMES';

Cadenas de caracteres y fechasLas cadenas de caracteres y fechas en la cláusula WHERE deben ir entre comillas simples, las constantes numéricas no.

Page 7: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-7

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--77 SQL Server

Operadores de ComparaciónOperadores de Comparación

Operador

=

>

>=

<

<=

<>

Descripción

Igual

Mayor que

Mayor o igual que

Menor que

Menor o igual que

Diferente

Operadores de ComparaciónLos operadores de comparación son utilizados para comparar expresiones con otras. Se utilizan en la cláusula WHERE con el siguiente formato :

Sintaxis

… WHERE expr operator value

Ejemplos

… WHERE hiredate='01-JAN-95'

… WHERE sal>=1500

… WHERE ename='SMITH'

Nota: Las fechas dependen del idioma del Sql Server.

Page 8: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-8

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--88 SQL Server

Utilizando los Operadores de Utilizando los Operadores de ComparaciónComparación

SELECT ename, sal, commFROM empWHERE sal<=comm;

ename sal comm---------- --------- ---------MARTIN 1250 1400

Utilizando los Operadores de ComparaciónEn el ejemplo, la instrucción SELECT recupera el nombre y la comisión para aquellos empleados cuyo salario sea menor o igual que su comisión. En este ejemplo no se utilizaron valores constantes, por lo que los valores se toman por cada registro que se vaya procesando.

Page 9: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-9

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--99 SQL Server

Otros Operadores de ComparaciónOtros Operadores de Comparación

Operador

BETWEEN...AND...

IN(list)

LIKE

IS NULL

Descripción

Entre dos valores (inclusive)

Coincida con uno de la lista

Igual al patrón de caracteres

Es un valor null

Page 10: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-10

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1010 SQL Server

Utilizando el Operador BETWEENUtilizando el Operador BETWEEN

ename sal---------- ---------MARTIN 1250TURNER 1500WARD 1250ADAMS 1100MILLER 1300

SELECT ename, salFROM empWHERE sal BETWEEN 1000 AND 1500;

Límite

inferior

Límite

superior

•• Utilice el operador BETWEEN para condicionar Utilice el operador BETWEEN para condicionar renglones basados en rangos de valores.renglones basados en rangos de valores.

El Operador BETWEENPuede desplegar renglones basados en rangos de valores utilizando el operador BETWEEN. Los rangos que especifique contienen límites inferior y superior.El ejemplo anterior obtiene los empleados que ganen entre $1000 y $1500 inclusive.

Page 11: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-11

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1111 SQL Server

Utilizando el Operador INUtilizando el Operador IN

•• Utilice el operador IN para igualar valores dentro de Utilice el operador IN para igualar valores dentro de la lista.la lista.

SELECT empno, ename, sal, mgrFROM empWHERE mgr IN (7902, 7566, 7788);

empno ename sal mgr--------- ---------- --------- ---------

7902 FORD 3000 75667369 SMITH 800 79027788 SCOTT 3000 75667876 ADAMS 1100 7788

El operador INPara verificar si un valor específico se encuentra en una lista, utilice el operador IN.El ejemplo anterior muestra el número de empleado, el nombre, el salario y su respectivo manager para aquellos empleados cuyos “jefes” sean 7902, 7566 o 7788.El operador IN puede ser utilizado con otros tipos de datos. El siguiente ejemplo retorna los empleados cuyos nombres estén en la lista.

SELECT empno, ename, mgr, deptnoFROM empWHERE ename IN ('FORD' , 'ALLEN');

Page 12: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-12

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1212 SQL Server

Utilizando el Operador LIKEUtilizando el Operador LIKE

• Utilice el operador LIKE para realizar búsquedas con caracteres comodines.

• Las condiciones de búsqueda pueden contener tanto caracteres como números.– % indica cero o más caracteres– _ indica un caracter

SELECT enameFROM empWHERE ename LIKE 'S%';

El Operador LIKEPuede seleccionar renglones que coincidan con un patrón de caracteres utilizando el operador LIKE. Se pueden utilizar dos caracteres (comodines) para la realización de búsquedas con patrones.

La consulta anterior retorna el nombre del empleado para aquellos cuyo nombre inicie con una “S”. Nombres que inicien con una “s” no serán mostrados.

Símbolo Descripción

% Representa una secuencia de cero o m ás caracteres

_ Representa un solo carácter

Page 13: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-13

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1313 SQL Server

Utilizando el Operador LIKEUtilizando el Operador LIKE

–– Puede combinar el patrón de caracteres como se Puede combinar el patrón de caracteres como se muestra en el ejemplo :muestra en el ejemplo :

SELECT enameFROM empWHERE ename LIKE '_A%';

ENAME----------JAMES WARDMARTIN

Utilizando el Operador LIKEPuede utilizar los símbolos comodines % y _ en combinación para hacer más exacta la búsqueda. En el ejemplo se obtienen aquellos empleados que en el nombre tengan como segunda letra una A.

Page 14: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-14

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1414 SQL Server

Utilizando el Operador IS NULLUtilizando el Operador IS NULL

•• Verifique los valores nulos con el Verifique los valores nulos con el operador IS NULLoperador IS NULL

SELECT ename, mgrFROM empWHERE mgr IS NULL;

ename mgr---------- ---------KING NULL

Utilizando el Operador IS NULLEl operador IS NULL verifica si existe un valor nulo, entonces devuelve Verdadero. El ejemplo obtiene los empleados que no tienen manager (jefe).Por ejemplo, para desplegar el nombre, puesto y comisión para aquellos empleados que no ganan una comisión :

SELECT ename, job, comm

FROM emp

WHERE comm IS NULL;

ename job comm

-------- ----------- ------

KING PRESIDENT NULL

BLAKE MANAGER NULL

CLARK MANAGER NULL

...

Page 15: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-15

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1515 SQL Server

Operadores LógicosOperadores Lógicos

Operador

AND

OR

NOT

Descripción

Devuelve TRUE si ambos componentes son TRUE

Devuelve TRUE si al menos uno de los componentes es TRUE

Devuelve el valor negado según el valor de la expresión evaluada

Page 16: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-16

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1616 SQL Server

Utilizando el Utilizando el operatoroperator ANDAND

AND requiere que ambas condiciones AND requiere que ambas condiciones sean TRUEsean TRUE

SELECT empno, ename, job, salFROM empWHERE sal>=1100AND job='CLERK';

empno ename job sal--------- ---------- --------- ---------

7876 ADAMS CLERK 11007934 MILLER CLERK 1300

Utilizando el operador ANDEn el ejemplo ambas condiciones deben ser verdaderas para que un registro sea mostrado. De tal forma que, si un empleado tiene el puesto de CLERK y gana de $1100 en adelante será seleccionado.

Page 17: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-17

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1717 SQL Server

Utilizando el operador ORUtilizando el operador OROR requiere que al menos una condición OR requiere que al menos una condición sea TRUE.sea TRUE.

SELECT empno, ename, job, salFROM empWHERE sal >= 2000OR job = 'CLERK';

empno ename job sal--------- ---------- --------- ---------

7839 KING PRESIDENT 50007698 BLAKE MANAGER 28507782 CLARK MANAGER 24507566 JONES MANAGER 2975

...(10 row(s) affected)

Utilizando el operador OREn el ejemplo, se muestran aquellos empleados que ganen de $2000 en adelante o tengan el puesto CLERK.

Page 18: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-18

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1818 SQL Server

Utilizando el operador NOTUtilizando el operador NOT

SELECT ename, jobFROM empWHERE job NOT IN ('CLERK','MANAGER','ANALYST');

ename job---------- ---------KING PRESIDENTMARTIN SALESMANALLEN SALESMANTURNER SALESMANWARD SALESMAN

Utilizando el operador NOTEn el ejemplo se muestran los nombres y puestos de los empleados que no se encuentren en la lista ('CLERK','MANAGER','ANALYST’).El operador NOT puede ser utilizado con otros operadores de SQL tales como BETWEEN, LIKE y NULL.

... WHERE NOT job IN ('CLERK', 'ANALYST')

... WHERE sal NOT BETWEEN 1000 AND 1500

... WHERE ename NOT LIKE '%A%'

... WHERE comm IS NOT NULL

Page 19: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-19

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--1919 SQL Server

Reglas de PrecedenciaReglas de Precedencia

•• Utilice paréntesis para modificar el orden de Utilice paréntesis para modificar el orden de evaluaciónevaluación

Orden Operador1 Todos los operadores

de comparación2 NOT3 AND4 OR

Page 20: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-20

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--2020 SQL Server

Reglas de PrecedenciaReglas de Precedencia

ename job sal---------- --------- ---------KING PRESIDENT 5000MARTIN SALESMAN 1250ALLEN SALESMAN 1600TURNER SALESMAN 1500WARD SALESMAN 1250

SELECT ename, job, salFROM empWHERE job='SALESMAN'OR job='PRESIDENT'AND sal>1500;

Ejemplo de Precedencia de operadoresEn el ejemplo, existen dos condiciones :

• La primer condición es que el puesto sea PRESIDENT y el salario mayor a $1500

• La segunda condición es que tenga el puesto SALESMAN.La consulta se puede leer de la siguiente forma :“Obtener los empleados que sean PRESIDENTES y ganen más de $1500 o aquellos que sean VENDEDORES”.

Page 21: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-21

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--2121 SQL Server

Reglas de PrecedenciaReglas de Precedencia

ename job sal---------- --------- ---------KING PRESIDENT 5000ALLEN SALESMAN 1600

Usando paréntesis para forzar la prioridad.Usando paréntesis para forzar la prioridad.

SELECT ename, job, salFROM empWHERE (job='SALESMAN'OR job='PRESIDENT')AND sal>1500;

Usando paréntesisEn el ejemplo, existen dos condiciones :

• La primer condición es que el puesto sea PRESIDENT o SALESMAN

• La segunda condición es que el salario sea mayor a $1500La consulta se puede leer de la siguiente forma :“Obtener los empleados que sean PRESIDENTES o VENDEDORES y ganen más de $1500”.

Page 22: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-22

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--2222 SQL Server

Cláusula ORDER BYCláusula ORDER BY–– Ordene la salida con la cláusula ORDER BYOrdene la salida con la cláusula ORDER BY

•• ASC: ASC: ordénordén ascendente, ascendente, defaultdefault•• DESC: DESC: ordénordén descendentedescendente

–– La cláusula ORDER BY siempre debe ser la La cláusula ORDER BY siempre debe ser la última en una instrucción SELECT.última en una instrucción SELECT.

SELECT ename, job, deptno, hiredateFROM empORDER BY hiredate;

ename job deptno hiredate---------- --------- --------- ------------------------SMITH CLERK 20 1980-12-17 00:00:00.000ALLEN SALESMAN 30 1981-02-20 00:00:00.000...(14 row(s) affected)

Cláusula ORDER BYEl orden en que se muestran los renglones de una tabla no está definido, de hecho aparecen en el orden en el que los registros fueron almacenados por primera vez en la tabla. Puede especificar una expresión o un alias para ordenar.

Sintaxis

donde: ORDER BY especifica el orden en en el que serán mostradoslos renglones.

column, exp el o los atributos por los que se va a ordenar.ASC ordena en forma ascendente. Este el ordena-

miento por default. DESC ordena en forma descendente.

SELECT exprFROM table[WHERE condition(s)][ORDER BY {column, expr} [ASC|DESC]];

Page 23: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-23

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--2323 SQL Server

Ordenando en forma descendenteOrdenando en forma descendente

SELECT ename, job, deptno, hiredateFROM empORDER BY hiredate DESC;

ename job deptno hiredate---------- --------- --------- ------------------------ADAMS CLERK 20 1983-01-12 00:00:00.000SCOTT ANALYST 20 1982-12-09 00:00:00.000...(14 row(s) affected)

Ordenando datosEl orden por default es ascendente :

• Los valores numéricos son mostrados del menor al mayor• Las fechas son mostradas con el valor de la fecha más pasada, por

ejemplo, 01-ENE-92 es primero que 01-ENE-95.• Las cadenas de caracteres son desplegadas en orden alfabético.• Los valores nulos aparecen al principio cuando es ascendente y al

final cuando es descendente el ordenamiento.

Page 24: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-24

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--2424 SQL Server

Ordenando con AliasOrdenando con Alias

SELECT empno, ename, sal*12 ann_salFROM empORDER BY ann_sal;

empno ename ann_sal--------- ---------- ---------

7369 SMITH 96007900 JAMES 114007876 ADAMS 132007654 MARTIN 150007521 WARD 150007934 MILLER 156007844 TURNER 18000

...(14 row(s) affected)

Ordenando con AliasPuede utilizar una columna renombrada con un alias en la cláusula ORDER BY. El ejemplo anterior ordena los datos por el salario anual.Se puede utilizar alias con espacios en blancos y este alias puede aparecer en una cláusula ORDER BY.Por ejemplo:

SELECT sal * 12 AS “Sal. Anual”FROM empORDER BY “Sal. Anual”;

Page 25: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-25

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--2525 SQL Server

Ordenando con Múltiples ColumnasOrdenando con Múltiples Columnas–– Utilice varias columnas para establecer diferentes Utilice varias columnas para establecer diferentes

criterios de ordenamiento.criterios de ordenamiento.

•• Puede ordenar por columnas que no aparezcan en la consultaPuede ordenar por columnas que no aparezcan en la consulta

SELECT ename, deptno, salFROM empORDER BY deptno, sal DESC;

ename deptno sal---------- --------- ---------KING 10 5000CLARK 10 2450MILLER 10 1300FORD 20 3000...(14 row(s) affected)

Ordenando con Múltiples ColumnasPuede ordenar los resultados de la consulta con una o más columnas, las cuales se toman como criterios de ordenamiento, el límite es el número de columnas que tenga la tabla.En una cláusula ORDER BY, especifique las columnas separadas porcomas, si desea cambiar el orden por default utilice DESC después de cada columna que desee cambiar el orden.En el ejemplo el primer criterio de ordenamiento es por número de departamento (en forma ascendente, default) y luego por salario en forma descendente.Nota: Si utiliza más de un criterio de ordenamiento, tome en cuenta que el primer criterio debe contener valores repetidos para que la consulta tenga sentido. Como en el ejemplo siguiente :

no tiene sentido ya que el primer criterio utilizado, es un atributo que no contiene valores repetidos, para que los demás criterios puedan afectar el resultado.

SELECT *FROM empORDER BY empno, deptno, sal DESC;

Page 26: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-26

Condicionando y ordenando datos 3Condicionando y ordenando datos 3--2626 SQL Server

PrácticasPrácticas

–– Seleccionar datos y cambiar el orden en Seleccionar datos y cambiar el orden en que son mostradosque son mostrados

–– Elimine renglones utilizando WHEREElimine renglones utilizando WHERE–– Utilice diferentes criterios de Utilice diferentes criterios de

ordenamientoordenamiento–– Utilice alias en ORDER BYUtilice alias en ORDER BY

Page 27: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-27

Práctica 3

1. Haga una consulta para desplegar el nombre y salario de los empleados que ganen más de $2850. Grabe el query con el nombre s03q01.sql

2. Cree un query para mostrar el nombre del empleado y departamento para el empleado 7566.

3. Modifique el query s03q01.sql para desplegar el nombre y salario para todos los empleados cuyo salario esté fuera del rango de $1500 y $2850. Grabe el query con el nombre s03q03.sql

ENAME SAL-------- ----KING 5000JONES 2975FORD 3000SCOTT 3000

ENAME DEPTNO------ ------JONES 20

ENAME SAL------- -----KING 5000JONES 2975MARTIN 1250JAMES 950WARD 1250FORD 3000SMITH 800SCOTT 3000ADAMS 1100MILLER 1300(10 row(s) affected)

Page 28: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-28

Práctica 3 (continuación)

4. Muestre el nombre de empleado, puesto y fecha de ingreso de aquellos empleados que hayan ingresado entre el 20 de Febrero de 1981 y el 1o. De Mayo de 1981.

ename job hiredate---------- --------- ---------------------------ALLEN SALESMAN 1981-02-20 00:00:00.000WARD SALESMAN 1981-02-22 00:00:00.000JONES MANAGER 1981-04-02 00:00:00.000BLAKE MANAGER 1981-05-01 00:00:00.000

5. Muestre el nombre de empleado y número del departamento para aquellos empleados que se encuentren en los departamentos 10 o 30 ordenados alfabéticamente por nombre.

ename deptno---------- ------ALLEN 30 BLAKE 30 CLARK 10 JAMES 30 KING 10 MARTIN 30 MILLER 10 TURNER 30 WARD 30

(9 row(s) affected)

6. Modifique el script s03q03.sql para listar el nombre y el salario de los empleados que ganen más de $1500 y estén en los departamentos 10 o 30. Etiquete las columnas como Employee y Month Salary, respectivamente. Guarde el script con el nombre s03q06.sql

Employee Month Salary---------- ------------ALLEN 1600.00 BLAKE 2850.00 CLARK 2450.00 KING 5000.00

(4 row(s) affected)

Page 29: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-29

Práctica 3 (continuación)

7. Muestre el nombre y fecha de ingreso de cada empleado que haya ingresado en 1982.

ename hiredate---------- ---------------------------SCOTT 1982-12-09 00:00:00.000MILLER 1982-01-23 00:00:00.000

(2 row(s) affected)

8. Muestre el nombre y el puesto de cada empleado que no sean empleados de alguien.

ename job---------- ---------KING PRESIDENT

9. Muestre el nombre, el salario y la comisión de los empleados que ganan comisión. Ordene los datos en forma descendente por salario y comisión.

ename sal comm---------- --------- ---------ALLEN 1600.00 300.00 TURNER 1500.00 .00 MARTIN 1250.00 1400.00 WARD 1250.00 500.00

10. Muestre el nombre de los empleados cuya tercer letra del nombre sea una A.

ename----------BLAKECLARKADAMS

11. Muestre el nombre de los empleados que tengan dos Ls en su nombre.

ename----------ALLENMILLER

Page 30: Condicionando y Ordenando datos - WordPress.comjvmr2012.files.wordpress.com/2020/04/capitulo-iii.pdf · Cadenas de caracteres y fechas ... En el ejemplo, la instrucción SELECT recupera

M.C. Luis Antonio Gama Moreno Introducción a SQL-Server 3-30

Práctica 3 (continuación)

12. Muestre el nombre, puesto y salario de aquellos empleados cuyo puesto sea CLERK o ANALYST y su salario no sea $1000, $3000 o $5000. Ordene la salida por salario descendente.

ename job sal ---------- --------- ---------MILLER CLERK 1300.00 ADAMS CLERK 1100.00 JAMES CLERK 950.00

SMITH CLERK 800.00

13. Modifique el script s03q06.sql para mostrar el nombre, salario, el 30% del salario y comisión para aquellos que su pago de comisión sea mayor que el 30% de su salario. Salve su query como s03q13.sql

ename sal 30% comm---------- --------- ----------- ---------WARD 1250.00 375.000 500.00

MARTIN 1250.00 375.000 1400.00