Row
Descrição
A função Row extrai uma linha específica de um rowset ou array, com base na posição numérica que você indicar. É uma função essencial no dia a dia de SFMC porque quase sempre que você consulta dados com LookupRows ou monta um rowset com BuildRowsetFromString, precisa acessar as linhas individualmente para trabalhar com os valores. Ela retorna um objeto de linha (row), que você depois combina com Field para extrair campos específicos.
Sintaxe
Row(@rowset, rowPosition)
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| @rowset | String | Sim | O rowset ou array de onde a linha será extraída. |
| rowPosition | String | Sim | O número da linha que você quer retornar. A primeira linha é 1. |
Exemplo básico
Buscando a primeira linha de um rowset com pedidos de um cliente da MegaStore:
%%[
SET @rowset = LookupRows("Pedidos", "EmailCliente", "[email protected]")
SET @row = Row(@rowset, 1)
SET @nomeProduto = Field(@row, "NomeProduto")
]%%
Seu último pedido: %%=v(@nomeProduto)=%%
Saída:
Seu último pedido: Smartphone Galaxy Ultra
Exemplo avançado
Listando os três últimos pedidos de um cliente em um e-mail de régua de relacionamento da Lojas Vitória, combinando Row com RowCount, Field e FormatCurrency:
%%[
SET @pedidos = LookupOrderedRows("Pedidos", 3, "DataPedido DESC", "CPF", "123.456.789-00")
SET @totalPedidos = RowCount(@pedidos)
IF @totalPedidos > 0 THEN
]%%
<h2>Seus últimos pedidos, João!</h2>
<table>
<tr>
<th>Produto</th>
<th>Valor</th>
<th>Data</th>
</tr>
%%[
FOR @i = 1 TO @totalPedidos DO
SET @row = Row(@pedidos, @i)
SET @produto = Field(@row, "NomeProduto")
SET @valor = FormatCurrency(Field(@row, "Valor"), "R$", 2)
SET @data = FormatDate(Field(@row, "DataPedido"), "dd/MM/yyyy")
]%%
<tr>
<td>%%=v(@produto)=%%</td>
<td>%%=v(@valor)=%%</td>
<td>%%=v(@data)=%%</td>
</tr>
%%[
NEXT @i
]%%
</table>
%%[ ENDIF ]%%
Saída:
Seus últimos pedidos, João!
Produto | Valor | Data
Notebook Pro 15 | R$ 4.299,90 | 15/06/2025
Fone Bluetooth ANC | R$ 349,90 | 02/06/2025
Capa Protetora Premium | R$ 89,90 | 28/05/2025
Observações
⚠️ Atenção: A primeira linha de um rowset é a posição 1, não 0. Se você passar uma posição que não existe no rowset (por exemplo, pedir a linha 5 de um rowset com 3 registros), vai gerar erro. Sempre valide o número de linhas com RowCount antes de chamar
Row.
💡 Dica:
Rowsozinha não retorna um valor exibível - ela retorna um objeto de linha. Para acessar o dado de uma coluna específica, você sempre vai precisar combinar com Field. Pense nelas como uma dupla inseparável:Rowseleciona a linha,Fieldseleciona a coluna.
💡 Dica: Você pode usar
Rowcom rowsets vindos de diversas origens: LookupRows, LookupOrderedRows, BuildRowsetFromString, BuildRowsetFromJson e BuildRowsetFromXml. O comportamento é o mesmo independentemente da origem.
Funções relacionadas
- Field - extrai o valor de um campo específico da linha retornada por
Row - RowCount - conta o número de linhas em um rowset (use antes de
Rowpara evitar erros) - LookupRows - retorna um rowset a partir de uma Data Extension
- LookupOrderedRows - retorna um rowset ordenado a partir de uma Data Extension
- BuildRowsetFromString - cria um rowset a partir de uma string delimitada
- BuildRowsetFromJson - cria um rowset a partir de dados JSON