28 - Ordenar registros (order by) |
Trabajamos con la tabla "libros" de una librería.
Eliminamos la tabla si existe:
if object_id ('libros') is not null drop table libros;
Creamos la tabla:
create table libros( codigo int identity, titulo varchar(40) not null, autor varchar(20) default 'Desconocido', editorial varchar(20), precio decimal(6,2), primary key (codigo) );
Ingresamos algunos registros:
insert into libros (titulo,autor,editorial,precio) values('El aleph','Borges','Emece',25.33); insert into libros values('Java en 10 minutos','Mario Molina','Siglo XXI',50.65); insert into libros (titulo,autor,editorial,precio) values('Alicia en el pais de las maravillas','Lewis Carroll','Emece',19.95); insert into libros (titulo,autor,editorial,precio) values('Alicia en el pais de las maravillas','Lewis Carroll','Planeta',15);
Recuperamos los registros ordenados por el título:
select * from libros order by titulo;
Ordenamos los registros por el campo "precio", referenciando el campo por su posición en la lista de selección:
select titulo,autor,precio from libros order by 3;
Los ordenamos por "editorial", de mayor a menor empleando "desc":
select * from libros order by editorial desc;
Ordenamos por dos campos:
select * from libros order by titulo,editorial;
Ordenamos en distintos sentidos:
select * from libros order by titulo asc, editorial desc;
Podemos ordenar por un campo que no se lista en la selección:
select titulo, autor from libros order by precio;
Está permitido ordenar por valores calculados:
select titulo, autor, editorial, precio+(precio*0.1) as 'precio con descuento' from libros order by 4;