SQL - Ordenar por dos campos a la vez

 
Vista:

Ordenar por dos campos a la vez

Publicado por Isabel (2 intervenciones) el 27/02/2001 20:12:13
A la hora de hacer un select, ¿es posible ordenar por dos columnas diferentes?
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenar por dos campos a la vez

Publicado por isidroalmaguer (26 intervenciones) el 28/02/2001 08:02:23
hola...

claro que si, ejemplo

select campos from tabla where campo1 = algo and campo2 = otracosa order by campo1

esa es la forma normal de seleccionar campos por varias columnas..

si necesitas mas ayuda soplo dilo

saludos
isidroalmaguer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar por dos campos a la vez

Publicado por Angel (20 intervenciones) el 28/02/2001 12:21:46
Si claro...
en la clausula "order by" debes incluir los dos campos de ordenamiento, p.ej.
Select * from T1 order by C1, C2

o por ejemplo,
Select * from T1 order by C1, C2 desc

Con esto ultimo los registros vienen ordenados por el campo C1 en orden ascendente y por el campo C2 en orden descendente (clausula desc)

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Ordenar por dos campos a la vez

Publicado por ignacio (1 intervención) el 25/09/2008 19:08:13
existe una manera qe con est ejemplo los campos c1 y c2 se ordenen de manera descendente ???

---------------------------------><-------------------------------------
Select * from T1 order by C1, C2 desc

Con esto ultimo los registros vienen ordenados por el campo C1 en orden ascendente y por el campo C2 en orden descendente (clausula desc)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar por dos campos a la vez

Publicado por Wilmar (1 intervención) el 31/08/2015 16:05:14
Muchas gracias, muy útil...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar por dos campos a la vez

Publicado por Guillermo Castillo (1 intervención) el 14/12/2015 12:31:43
Select *
From T1
Order By C1 desc, C2 desc;

(ambas Desc)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar por dos campos a la vez

Publicado por henry (1 intervención) el 18/11/2009 21:28:15
gracias por esta ayuda me sirvio de mucho.

ahora quiero hacer algo asi para ver si puedes ayudarme

SELECT nombrevend, count(pc),so
fROM registro

quiero seleccionar un nombre de vendedor y luego un conteo de las pc vendidas por el con un tipo de sistema operativo pero cuando uso count no me permite select tener varios campos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar por dos campos a la vez

Publicado por Candelmark (1 intervención) el 28/11/2011 06:44:45
Muchas gracias por el tip!...ya estaba cabezon pensando que seria complejo jejeje
gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar por dos campos a la vez

Publicado por Omar LG (1 intervención) el 24/01/2013 16:50:31
Muchas Gracias!! Me sirvió mucho!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar por dos campos a la vez

Publicado por alejandro (1 intervención) el 22/02/2013 06:06:06
una pregunta yo pongo el select y el order by como tu me indicas, pero solo me cambia el order de la primera columna que le ingreso, en la segunda no hace nada, no sabras que sera?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ordenar por dos campos a la vez

Publicado por proferay (1 intervención) el 22/09/2017 16:23:26
La pregunta es antigua pero por si alguien desemboca acá, respondo.

Yo tenía que hacer lo mismo. Ordenar por una columna en forma Ascendente pero que a la vez, la otra columna quedara en forma Descendente.

Ejemplo de Sentencia SQL:

SELECT * FROM tabla1 WHERE condicion/es ORDER BY Columna1, Columna2

Estructura de la tabla1:
id
Columna1
Columna2
Columna3

Datos(5 registros de ejemplo):
id - Columna1 - Columna2 - Columna3
1 - 33333333 - ZZZZZZZZZ - Cualquier
2 - 55555555 - BBBBBBBB - dato que
3 - 99999999 - AAAAAAAAA - no tenga
4 - 55500000 - 4CCCCCC - relacion
5 - 55500000 - 3CCCCCC - con un orden
6 - 55500000 - 2CCCCCC - determinado

Ejemplo 1:
SELECT * FROM tabla1 WHERE condicion/es ORDER BY Columna1 ASC, Columna2 ASC;

Resultado:
id - Columna1 - Columna2 - Columna3
1 - 33333333 - ZZZZZZZZZ - Cualquier
6 - 55500000 - 2CCCCCC - determinado
5 - 55500000 - 3CCCCCC - con un orden
4 - 55500000 - 4CCCCCC - relacion
2 - 55555555 - BBBBBBBB - dato que
3 - 99999999 - AAAAAAAAA - no tenga

Ejemplo 2:
SELECT * FROM tabla1 WHERE condicion/es ORDER BY Columna1 DESC, Columna2 ASC;

Resultado:
id - Columna1 - Columna2 - Columna3
3 - 99999999 - AAAAAAAAA - no tenga
2 - 55555555 - BBBBBBBB - dato que
6 - 55500000 - 2CCCCCC - determinado
5 - 55500000 - 3CCCCCC - con un orden
4 - 55500000 - 4CCCCCC - relacion
1 - 33333333 - ZZZZZZZZZ - Cualquier

Ejemplo 3:
SELECT * FROM tabla1 WHERE condicion/es ORDER BY Columna1 DESC, Columna2 DESC;

Resultado:
id - Columna1 - Columna2 - Columna3
3 - 99999999 - AAAAAAAAA - no tenga
2 - 55555555 - BBBBBBBB - dato que
4 - 55500000 - 4CCCCCC - relacion
5 - 55500000 - 3CCCCCC - con un orden
6 - 55500000 - 2CCCCCC - determinado
1 - 33333333 - ZZZZZZZZZ - Cualquier

Notese el orden en que se indica la ordenación: Siempre se ordenará primero la columna1 del ejemplo, y luego, en los casos en que la columna1 tenga registros repetidos, ordenará según lo solicitado la información de la columna2.

Si quisiéramos hacerlo a la inversa (que primero ordene la columna2 y luego la columna1, entonces la sentencia debería ser así:

Ejemplo:
SELECT * FROM tabla1 WHERE condicion/es ORDER BY Columna2 ASC, Columna1 ASC;

Y el resultado, en este caso, sería:
id - Columna1 - Columna2 - Columna3
3 - 99999999 - AAAAAAAAA - no tenga
2 - 55555555 - BBBBBBBB - dato que
6 - 55500000 - 2CCCCCC - determinado
5 - 55500000 - 3CCCCCC - con un orden
4 - 55500000 - 4CCCCCC - relacion
1 - 33333333 - ZZZZZZZZZ - Cualquier

Dado que en el ejemplo, la columna2 posee todos datos diferentes entre sí, la columna 1 no se ordena en forma Ascendente (como se solicitó) porque indicamos que primero ordene por la columna2.

Al ordenar por la columna2, encuentra un solo registro con "AAAAAAAAA" que en columna1 contiene "99999999". No puede ordenar ese único dato.

Pero modifiquemos los datos de la columna2 de esta manera:

id - Columna1 - Columna2 - Columna3
1 - 33333333 - AAAAAAAAA - Cualquier
2 - 55555555 - BBBBBBBB - dato que
3 - 99999999 - AAAAAAAAA - no tenga
4 - 55500000 - BBBBBBBB - relacion
5 - 55500000 - AAAAAAAAA - con un orden
6 - 55500000 - BBBBBBBB - determinado

y el resultado de la sentencia:
SELECT * FROM tabla1 WHERE condicion/es ORDER BY Columna2 ASC, Columna1 ASC;

Sería:
id - Columna1 - Columna2 - Columna3
1 - 33333333 - AAAAAAAAA - Cualquier
3 - 99999999 - AAAAAAAAA - no tenga
5 - 55500000 - AAAAAAAAA - con un orden
4 - 55500000 - BBBBBBBB - relacion
6 - 55500000 - BBBBBBBB - determinado
2 - 55555555 - BBBBBBBB - dato que
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ordenar por dos campos a la vez

Publicado por Ana (1 intervención) el 09/08/2022 10:18:14
Tu explicación a sido muy clara y me ha ayudado mucho a entenderlo. Muchísimas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar