LookupOrderedRows
This function returns a set of ordered rows from a Data Extension.
Arguments
LookupOrderedRows(1,2,3,4,5,[6a,6b]...)
Ordinal | Type | Required | Description |
---|---|---|---|
1 | String | True | Name of the Data Extension from which to return rows |
2 | Number | True | Number of rows to return. Specifying 0 or -1 returns all matching rows. The maximum number of rows returned is 2,000. |
3 | String | True | Order-by clause that determines the order of the rows returned. Include a suffix of ASC (default) or DESC to specify the sort order of the rows. Specify multiple sort columns by separating them with a comma. |
4 | String | True | Name of the column that identifies the rows to retrieve |
5 | String | True | Value that identifies the rows to retrieve |
6a | String | False | Additional column name that identifies the rows to retrieve (see note) |
6b | String | False | Additional value that identifies the rows to retrieve (see note) |
NOTE: Additional pairs of columns and values can be appended as arguments.
Example 1
The following illustrates the use of this function with the minimum number of arguments.
Data Extension: LoyaltyMembers
Name | Data Type | Length | Primary Key | Nullable | Default Value |
---|---|---|---|---|---|
EmailAddress | EmailAddress | 254 | N | N | |
SubscriberKey | Text | 254 | Y | N | |
FirstName | Text | 50 | N | Y | |
Region | Text | 50 | N | Y | |
Rank | Number | N | Y |
The LoyaltyMembers Data Extension includes these rows:
EmailAddress | SubscriberKey | FirstName | Region | Rank |
---|---|---|---|---|
doug@limedash.com | 8473 | Doug | north | 1 |
suzy@limedash.com | 5497 | Suzy | North | 3 |
dale@limedash.com | 7114 | Dale | West | 2 |
barb@limedash.com | 5767 | Barb | North | 1 |
curt@limedash.com | 5152 | Curt | north | 2 |
nora@limedash.com | 7014 | Nora | South | 1 |
leon@limedash.com | 8225 | Leon | East | 3 |
lily@limedash.com | 9496 | Lily | East | 1 |
Here is an example utilizing the preceding context:
%%[
var @rows, @row, @rowCount, @numRowsToReturn, @region, @i
set @region = AttributeValue("Region") /* value from attribute or DE column in send context */
set @region = "North" /* or a literal value */
set @numRowsToReturn = 0 /* 0 means all, max 2000 */
set @rows = LookupOrderedRows("LoyaltyMembers", @numRowsToReturn, "rank desc, firstName asc", "region", @region)
set @rowCount = rowcount(@rows)
output(concat("region: ", @region))
if @rowCount > 0 then
for @i = 1 to @rowCount do
var @firstName, @emailAddress, @rank
set @row = row(@rows, @i) /* get row based on counter */
set @rank = field(@row,"rank")
set @firstName = field(@row,"firstName")
set @emailAddress = field(@row,"emailAddress")
]%%
<br>Row %%=v(@i)=%%, rank: %%=v(@rank)=%%, firstName: %%=v(@firstName)=%%, emailAddress: %%=v(@emailAddress)=%%
%%[
next @i ]%%
%%[ else ]%%
No rows found
%%[ endif ]%%
Output
region: North
Row 1, rank: 3, firstName: Suzy, emailAddress: suzy@limedash.com
Row 2, rank: 2, firstName: Curt, emailAddress: curt@limedash.com
Row 3, rank: 1, firstName: Barb, emailAddress: barb@limedash.com
Row 4, rank: 1, firstName: Doug, emailAddress: doug@limedash.com
Example 2
Not a subscriber? Subscribe now.