Compartir a través de


Cláusula ORDER BY (Microsoft Access SQL)

Se aplica a: Access 2013 | Access 2016

Ordena los registros resultantes de una consulta por uno o varios campos especificados en orden ascendente o descendente.

Sintaxis

SELECT fieldlist FROM table WHERE selectcriteria [ORDER BY field1 [ASC | DESC ][, field2 [ASC | DESC ]][, ...]]]

Una instrucción SELECT que contenga una cláusula ORDER BY consta de los siguientes elementos:

Parte Descripción
fieldlist Nombre del campo o campos que se van a recuperar junto con los alias de nombre de campo, funciones de agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones de la instrucción SELECT.
table Nombre de la tabla en la que se recuperan los registros. Para obtener más información, vea la cláusula FROM.
selectcriteria Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de datos de Microsoft Access ordena los valores después de aplicar las condiciones WHERE a los registros.
campo1, campo2 Nombres de los campos por los que ordenar los registros.

Comentarios

ORDER BY es opcional. Sin embargo, si desea que los datos se muestren ordenados, debe usar ORDER BY.

El criterio de ordenación predeterminado es ascendente (de A a Z, de 0 a 9). En los dos ejemplos siguientes, se ordenan los nombres de los empleados por apellido:

SELECT LastName, FirstName 
FROM Employees 
ORDER BY LastName; 
SELECT LastName, FirstName 
FROM Employees 
ORDER BY LastName ASC;

Para ordenar los registros en orden descendente (de Z a A, de 9 a 0), agregue la palabra reservada DESC al final de cada campo que desee ordenar de esa manera. En el siguiente ejemplo, se seleccionan los salarios y se ordenan en orden descendente:

SELECT LastName, Salary 
FROM Employees 
ORDER BY Salary DESC, LastName;

Si especifica un campo que contiene datos de tipo Memo u Objeto OLE en la cláusula ORDER BY, se producirá un error. El motor de base de datos Microsoft Jet no ordena por campos de estos tipos.

ORDER BY suele ser el último elemento de una instrucción SQL.

Puede incluir campos adicionales en la cláusula ORDER BY. Los registros se ordenan primero por el primer campo enumerado a continuación de ORDER BY. Los registros que tengan valores iguales en ese campo, se ordenarán por el valor del segundo campo enumerado, etc.

Ejemplo

En la instrucción SQL que se muestra en el siguiente ejemplo se utiliza la cláusula ORDER BY para ordenar los registros por apellidos en orden descendente (Z-A). Llama al procedimiento EnumFields, que se incluye en el ejemplo de la instrucción SELECT.

Sub OrderByX() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
 
    ' Select the last name and first name values from  
    ' the Employees table, and sort them in descending  
    ' order. 
    Set rst = dbs.OpenRecordset("SELECT LastName, " _ 
        & "FirstName FROM Employees " _ 
        & "ORDER BY LastName DESC;") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print recordset contents. 
    EnumFields rst, 12 
 
    dbs.Close 
 
End Sub

Información sobre los colaboradores

Vínculo proporcionado porCommunity Member Icon (Icono de miembro de la comunidad) de la comunidad utterAccess .

UtterAccess es el principal foro de ayuda y wiki de Microsoft Access.

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.