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 por de la comunidad) de la comunidad utterAccess .
UtterAccess es el principal foro de ayuda y wiki de Microsoft Access.
Vea también
- Acceso al foro de desarrolladores
- Acceso a la ayuda en support.office.com
- Acceso a foros en UtterAccess
- Acceso al centro de ayuda de programadores VBA y desarrolladores (FMS)
- Acceso a las publicaciones en StackOverflow
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.