Saltar al contenido

¿Qué es este orden por 1?

Solución:

order by 1 significa “ordenar por el primer campo que seleccioné”, es decir, en este caso, lo mismo que order by playerno, porque playerno fue el primer campo de la lista.

En caso de que desee la redacción oficial, esto es lo que el estándar SQL-921 dice:

10)If ORDER BY is specified, then each <sort specification> in the
        <order by clause> shall identify a column of T.

        Case:

        a) If a <sort specification> contains a <column name>, then T
          shall contain exactly one column with that <column name> and
          the <sort specification> identifies that column.

        b) If a <sort specification> contains an <unsigned integer>,
          then the <unsigned integer> shall be greater than 0 and not
          greater than the degree of T. The <sort specification> iden-
          tifies the column of T with the ordinal position specified by
          the <unsigned integer>.

En este caso, b es el que parece aplicarse.


1. Esta cotización es de un borrador disponible gratuitamente en lugar de la norma aprobada. Si bien estoy seguro de que hay al menos algunos cambios entre este borrador y el texto final del estándar (sin mencionar entre una versión del estándar y otra), parece poco probable que algo tan fundamental cambie (probablemente alguna vez).

Esto se conoce como “ORDEN POR ordinal”, básicamente ordena por la columna en esa posición. Ordenar por 1 significa ordenar por la primera columna seleccionada. En tu ejemplo, sería el equivalente a decir ORDER BY playerno

Sin embargo, no recomendaría hacerlo de esta manera, ya que no está claro a qué columna hace referencia y si el orden de las columnas cambia, la consulta devolverá resultados diferentes.

Más recursos:

Consejo rápido: Ordene por 1 Desc

Malos hábitos para patear: ORDENAR POR ordinal

SQL: ordenar por

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *