• ** “基元”**值是单个部分值,如数字、逻辑、文本或 NULL 。 NULL 值可用于指示缺少数据。
123 // A number
true // A logical 
"abc" // A text
null // null value
  • “列表”值是值的有序序列 。 M 支持无限列表,但如果作为文本写入,则列表具有固定长度。 大括号字符{和}表示列表的开头和结尾。
{123, true, "A"} // list containing a number, a logical, and // a text 
{1, 2, 3} // list of three numbers
  • ** “记录”**是一组字段 。 字段是名称/值对,其中名称是在字段的记录中唯一的文本值。 记录值的文本语法允许将名称写成不带引号的形式,这种形式也称为“标识符”。 下面显示了一个记录,其中包含名为
    A、B和C的三个字段,这些字段具有值1、2和3。
[ 
A = 1, 
B = 2, 
C = 3 
]
  • “表”是一组按列(按名称标识)和行组织的值 。 不存在用于创建表的文本语法,但有几个标准函数可用于从列表或记录创建表。
#table( 
{"A", "B"}, 
{ {1, 2}, 
{3, 4} } 
)
  • “函数”是一个值,当带着参数进行调用时,将生成一个新值。 函数编写的方法是在括号中列出函数的
    参数,后跟“转到”符号=> 和定义函数的表达式。 该表达式通常引用参数(按名称)。

(x, y) => (x + y) / 2`
let
    ArcSource = Sql.Database("Server1", "RDB_DB", [Query="select top(250000) Field1,Field2,Field3 from table1 order by Field1 desc", CommandTimeout=#duration(0, 0, 5, 0)]),
    ReplSource =Sql.Database("Server2", "RDB_DB1", [Query="select  Field1,Field2,Field3 from table1 ", CommandTimeout=#duration(0, 0, 5, 0)]),
    CombSource = Table.Combine(**{ArcSource,ReplSource}**),
  //此处如果不加{}则会产生语法错误, 因为Combine的是列表
    #"Removed Duplicates" = Table.Distinct(CombSource, {"Field1"})
in
    #"Removed Duplicates"