---
schema_version: "1"
id: 3189f404df4171ecc6b7125f6aea1df2ababc58fe7a12a8639cc9057544ad8a6
title: LookupOrderedRowsCS()
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/ampscript/references/data-extension/mc-ampscript-reference-data-extension-lookup-ordered-rows-cs.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-ordered-rows-cs.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: f12fab01a629ecec1b81b4f1ea68c8fd36702faadb70078f2ddb28aeb0de97d5
products:
  - AMPscript for Marketing Cloud
  - Marketing Cloud
---
# LookupOrderedRowsCS()

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()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-ordered-rows.md) function is a case-insensitive version of this function.
- The [LookupRows()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-rows.md) function returns unordered rows.
- The [LookupRowsCS()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-rows-cs.md) function is a case-sensitive version of `LookupRows()`.

## Availability

<table>
  <tr>
    <td>Marketing Cloud Engagement</td>
    <td>✅ Yes</td>
  </tr>
  <tr>
    <td>Marketing Cloud Next</td>
    <td>❌ No</td>
  </tr>
</table>

## Syntax

```
LookupOrderedRowsCS(dataExt,
                    numRows,
                    sortColumn,
                    searchColumn1, searchValue1,
                    [searchColumn2, searchValue2 ...])
```

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. Specify multiple columns by separating them with a comma. For example, `"LastName ASC, FirstName ASC"`.
- `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>
```

The code outputs a table that contains this data.

| Rank | Name                  | Population | Area (km²) |
| ---- | --------------------- | ---------- | ---------- |
| 1    | Northwest Territories | 41070      | 1346106    |
| 2    | Yukon                 | 40232      | 482443     |
| 3    | Nunavut               | 36858      | 2093190    |

## See Also

- [LookupOrderedRows()](https://developer.salesforce.com/docs/marketing/marketing-cloud-ampscript/references/mc-ampscript-data-extension/mc-ampscript-reference-data-extension-lookup-ordered-rows.md)
