PowerQuery 中 #table 和 #list of #records 之间的区别

Difference between #table and #list of #records in PowerQuery

powerQuery 中 #table 类型的项目和 #record 类型的列表有什么区别?例如:

data = {
    [id=1, name="tom"],
    [id=2, name="sarah]
}

并且:

data = #table(
    {"id", "name"},
    {
      {1, "tom"},
      {2, "sarah"}
    },
)

它们是写同一个东西的两种方式,还是在某些情况下应该使用一种方式代替另一种方式?

主要区别是table 可能需要严格的数据类型,并且只包含记录,而记录列表还可以包含其他类型的值,例如数字或字符。

您的示例可以预先定义列类型:

data = #table(
    type table [id=Int64.Type, name=Text.Type],
    {
      {1, "tom"},
      {2, "sarah"}
    },
)

与列表相反:

data = {
    [id=1, name="tom"],
    [id=2, name="sarah"],
    1,
    "a"
}