Returns rows from a data extension sorted in ascending or descending order based on a column that you specify. If the function doesn’t find the search values that you specify, it returns an empty rowset. This function is case-sensitive.
AMPscript includes several variations of the LookupOrderedRowsCS() function.
The LookupOrderedRows() function is a case-insensitive version of this function.
The LookupOrderedRowsCS() function has five parameters.
dataExt (string): Required. The name of the data extension that contains the data that you want to retrieve.
numRows (number): Required. The number of rows to return. If you specify a value less than 1, the function returns all rows, up to a maximum of 2,000 rows.
sortColumn (string): Required. The column to sort data by, followed by a space and either "ASC" (for ascending order) or "DESC" (descending). This value is case-sensitive.
searchColumn1 (string): Required. The name of the column to search. This value is case-sensitive.
searchValue1 (string): Required. The value in the specified column that identifies the rows to retrieve. This value is case-sensitive.
You can optionally append additional search columns and values to the end of the parameter string.
Usage
This example uses a data extension called "Administrative Divisions of Canada," which contains the data in this table.
Abbrev
Name
Capital
LargestCity
Population2021
AreaKM2
Type
AB
Alberta
Edmonton
Calgary
4262635
661848
Province
BC
British Columbia
Victoria
Vancouver
5000879
944735
Province
MB
Manitoba
Winnipeg
Winnipeg
1342153
647797
Province
NB
New Brunswick
Fredericton
Moncton
775610
72908
Province
NL
Newfoundland and Labrador
St. John's
St. John's
510550
405212
Province
NS
Nova Scotia
Halifax
Halifax
969383
55284
Province
ON
Ontario
Toronto
Toronto
14223942
1076395
Province
PE
Prince Edward Island
Charlottetown
Charlottetown
154331
5660
Province
QC
Quebec
Quebec City
Montreal
8501833
1542056
Province
SK
Saskatchewan
Regina
Saskatoon
1132505
651036
Province
NT
Northwest Territories
Yellowknife
Yellowknife
41070
1346106
Territory
YT
Yukon
Whitehorse
Whitehorse
40232
482443
Territory
NU
Nunavut
Iqaluit
Iqaluit
36858
2093190
Territory
This code retrieves a complete list of regions where the value of the Type column is Territory and outputs the results in descending order based on the values in the Population2021 column.
<table>
<tr>
<th>Rank</th>
<th>Name</th>
<th>Population</th>
<th>Area (km²)</th>
</tr>
%%[
Var @territoriesByPopulation
Set @territoriesByPopulation = LookupOrderedRowsCS("Administrative Divisions of Canada",
/* Return all values */
0,
/* Value to sort by and sort order */
"Population2021 DESC",
/* Retrieve data that matches this column and value */
"Type", "Territory"
)
Set @rowCount = RowCount(@territoriesByPopulation)
/* Only output content if the rowset contains data. */
If @rowCount > 0 then
/* Iterate through rowset. */
For @counter = 1 to @rowCount do
Var @row, @territoryName, @population, @area
Set @row = Row(@territoriesByPopulation, @counter)
Set @territoryName = Field(@row, "Name")
Set @population = Field(@row, "Population2021")
Set @area = Field(@row, "AreaKM2")
]%%
<!-- Create a table row for each row in the rowset. -->
<tr>
<td>%%=v(@counter)=%%</td>
<td>%%=v(@territoryName)=%%</td>
<td>%%=v(@population)=%%</td>
<td>%%=v(@area)=%%</td>
</tr>
%%[
Next @counter
EndIf
]%%
</table>