Como se ha comentado, podemos imaginarnos una tabla formada una lista en la que cada valor es una fila:
Eso sí, vemos que cada uno de los valores de la lista es una estructura que incluye tanto los nombres de las columnas como los valores, información que se almacena como un registro. Es decir, si consideramos una tabla como una lista de valores, cada valor es un registro.
El considerar una tabla como una lista nos permitiría seleccionar una fila usando la notación ya conocida de Lista{índice}. Por ejemplo, data{1} extraería la fila de Susan (recordemos que nuestra tabla se llama data y que el primer elemento de una lista es el que recibe el índice 0):
data = #table(
type table[
FirstName = text,
LastName = text,
Score = number
],
{
{"John", "Smith", 14},
{"Susan", "McGregor", 9},
{"George", "Smith", 21}
}
)
in
data{1}
Efectivamente, el resultado es un registro. Si quisiéramos comprobarlo de forma programática, podríamos usar la función Value.Type que recibe un valor como argumento y devuelve su tipo:
data = #table(
type table[
FirstName = text,
LastName = text,
Score = number
],
{
{"John", "Smith", 14},
{"Susan", "McGregor", 9},
{"George", "Smith", 21}
}
)
in
Value.Type(data{1})
Y, por supuesto, para extraer un valor de un registro basta con usar la notación registro[nombre-de-campo]. Así, si una vez que hemos seleccionado la fila de Susan quisiéramos extraer su puntuación (campo Score), bastaría con indicar el registro (data{1}) seguido de [Score]:
data = #table(
type table[
FirstName = text,
LastName = text,
Score = number
],
{
{"John", "Smith", 14},
{"Susan", "McGregor", 9},
{"George", "Smith", 21}
}
)
in
data{1}[Score]