Il tipo di dati ROW contiene una struttura ad albero. Una riga in un database è un particolare tipo di struttura ad albero, ma il tipo di dati ROW non è limitato a contenere i dati dalle righe del database.
Root Row PartNumber = 1 Description = 'Chocolate bar' Price = 0.30 Row PartNumber = 2 Description = 'Biscuit' Price = 0.35 Row PartNumber = 3 Description = 'Fruit' Price = 0.42
Nell'esempio, Root contiene tre elementi denominati "Row". Ciascuno di essi contiene tre elementi con diversi nomi e valori. Questo diagramma descrive in modo uniforme un'istanza di un tipo di dati ROW ESQL (una struttura ad albero) oppure il contenuto di una tabella del database.
Il tipo di dati ROW è un tipo di dati normale. E' possibile utilizzare l'istruzione DECLARE per creare variabili ROW nello stesso modo in cui vengono create variabili INTEGER o CHARACTER. Esiste anche un concetto più generale di tipo di dati ROW. Nell'esempio precedente, Root è l'elemento root di una variabile ROW. Ciascuno degli elementi chiamati "Row", e non l'elemento root delle variabili ROW, è un elemento root delle strutture ad albero secondarie. Molte operazioni ESQL (in particolare la funzione SELECT) utilizzano il concetto generale di ROW e funzionano ugualmente sulle intere strutture ad albero o su parti di esse.
Esiste anche un concetto generale di tipo di dati LIST. L'insieme di elementi chiamati "Row" può essere considerato come un elenco. Alcune operazioni ESQL (in particolare SELECT) utilizzano il concetto generale di elenco.
InputRoot, OutputRoot (e così via) sono esempi di variabili ROW dichiarate automaticamente e collegate nella struttura del broker, pronte per essere utilizzate.