tipos subconsultas row_number registros numero fila ejemplos contar contador consultas agrupados agrupadas sql sql-order-by

subconsultas - subquery sql server ejemplos



Ordenamiento de mĂșltiples columnas SQL (5)

El ordenamiento de múltiples columnas depende de los valores correspondientes de ambas columnas: Aquí está mi ejemplo de tabla donde hay dos columnas nombradas con Alfabetos y Números y los valores en estas dos columnas son órdenes de asc y desc .

Ahora realizo Order By en estas dos columnas ejecutando el siguiente comando:

Ahora, de nuevo, inserto nuevos valores en estas dos columnas, donde el valor del alfabeto en orden ASC :

y las columnas en la tabla de ejemplo tienen este aspecto. Ahora vuelve a realizar la misma operación:

Puede ver que los valores en la primera columna están en orden de desc, pero la segunda columna no está en orden de ASC.

Estoy tratando de ordenar por varias columnas en SQL y en diferentes direcciones. column1 se column1 descendente, y column2 ascendente.

¿Cómo puedo hacer esto?


Las otras respuestas carecen de un ejemplo concreto, así que aquí va:

Dada la siguiente tabla de personas :

FirstName | LastName | YearOfBirth ---------------------------------------- Thomas | Alva Edison | 1847 Benjamin | Franklin | 1706 Thomas | More | 1478 Thomas | Jefferson | 1826

Si ejecuta la consulta a continuación:

SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC

El conjunto de resultados se verá así:

FirstName | LastName | YearOfBirth ---------------------------------------- Thomas | More | 1478 Thomas | Jefferson | 1826 Thomas | Alva Edison | 1847 Benjamin | Franklin | 1706


Puede utilizar pedidos múltiples en múltiples condiciones,

ORDER BY (CASE WHEN @AlphabetBy = 2 THEN [Drug Name] END) ASC, CASE WHEN @TopBy = 1 THEN [Rx Count] WHEN @TopBy = 2 THEN [Cost] WHEN @TopBy = 3 THEN [Revenue] END DESC


ORDER BY column1 DESC, column2

Esto ordena todo por column1 (descendente) primero, y luego por column2 (ascendente, que es el valor predeterminado) siempre que los campos column1 para dos o más filas sean iguales.


SELECT * FROM mytable ORDER BY column1 DESC, column2 ASC