适用于: Azure 数据工厂 Azure Synapse Analytics

数据流在 Azure 数据工厂和 Azure Synapse 管道中均可用。 本文适用于映射数据流。 如果不熟悉转换,请参阅介绍性文章 使用映射数据流转换数据

以下文章详细介绍了映射数据流中 Azure 数据工厂和 Azure Synapse Analytics 所支持的表达式函数。

表达式函数列表

在数据工厂和 Synapse 管道中,使用映射数据流功能的表达式语言来配置数据转换。

表达式函数 compare 比较同一类型的两个值。 如果 value1 < value2,则返回负整数,如果 value1 == value2,则返回 0,如果 value1 > value2,则返回正值。 concat 将字符串的可变数字连接在一起。 与包含字符串的 + 运算符相同。 concatWS 使用分隔符将字符串的可变数字连接在一起。 第一个参数是分隔符。 计算余弦值。 计算某个值的双曲余弦值。 crc32 根据给定位长度为不同基元数据类型的列集计算 CRC32 哈希。 位长度必须为值 0 (256)、224、256、384 或 512。 它可用于计算行的指纹。 degrees 将弧度转换为度。 divide 将数字对相除。 与 / 运算符相同。 dropLeft 删除字符串左侧任意数目的字符。 如果请求删除的字符数超过了该字符串的长度,则返回空字符串。 dropRight 删除字符串右侧任意数目的字符。 如果请求删除的字符数超过了该字符串的长度,则返回空字符串。 endsWith 检查字符串是否以提供的字符串结尾。 equals “等于”比较运算符。 与 == 运算符相同。 equalsIgnoreCase 忽略大小写的比较等于运算符。 与 <=> 运算符相同。 escape 根据格式转义字符串。 可接受的格式的文本值为 "json"、"xml"、"ecmascript"、"html"、"java"。 通过字符串生成一个表达式。 它相当于在非文本窗体中编写表达式,并可用于以字符串表示形式传递参数。 计算一个数的阶乘。 false 始终返回 false 值。 如果存在名为“false”的列,请使用函数 syntax(false()) floor 返回不大于该数字的最大整数。 fromBase64 对给定的 base64 编码的字符串进行解码。 greater “大于”比较运算符。 与 > 运算符相同。 greaterOrEqual “大于等于”比较运算符。 与 >= 运算符相同。 greatest 返回输入值列表中的最大值,跳过 NULL 值。 如果所有输入均为 NULL,则返回 NULL。 hasColumn 在流中按名称检查列值。 可以将可选流名称作为第二个参数传递。 设计时已知的列名应该只按名称进行寻址。 不支持计算输入,但可以使用参数替换。 hasError 检查具有所提供 ID 的断言是否标记为错误。 根据条件应用一个值或另一个值。 如果未指定,则将其视为 NULL。 这两个值必须兼容(数字、字符串…)。 iifNull 如果有两个或更多个输入,则返回第一个非 null 项。 此函数等效于联合。 initCap 将每个单词的第一个字母转换为大写。 通过空格分隔符识别单词。 instr 在字符串中查找子字符串的位置(从 1 开始)。 如果未找到,则返回 0。 isDelete 检查该行是否标记为删除。 对于采用多个输入流的转换,可以传递流的(从 1 开始)索引。 流索引应为 1 或 2,默认值为 1。 isError 检查该行是否标记为错误。 对于采用多个输入流的转换,可以传递流的(从 1 开始)索引。 流索引应为 1 或 2,默认值为 1。 isIgnore 检查该行是否标记为忽略。 对于采用多个输入流的转换,可以传递流的(从 1 开始)索引。 流索引应为 1 或 2,默认值为 1。 isInsert 检查该行是否标记为插入。 对于采用多个输入流的转换,可以传递流的(从 1 开始)索引。 流索引应为 1 或 2,默认值为 1。 isMatch 检查查找时是否匹配该行。 对于采用多个输入流的转换,可以传递流的(从 1 开始)索引。 流索引应为 1 或 2,默认值为 1。 isNull 检查值是否为 NULL。 isUpdate 检查该行是否标记为更新。 对于采用多个输入流的转换,可以传递流的(从 1 开始)索引。 流索引应为 1 或 2,默认值为 1。 isUpsert 检查该行是否标记为插入。 对于采用多个输入流的转换,可以传递流的(从 1 开始)索引。 流索引应为 1 或 2,默认值为 1。 jaroWinkler 获取两个字符串之间的 JaroWinkler 距离。 least “小于等于”比较运算符。 与 <= 运算符相同。 从索引 1 处开始提取包含字符数的子字符串。 与 SUBSTRING(str, 1, n) 相同。 length 返回字符串的长度。 lesser “小于”比较运算符。 与 < 运算符相同。 lesserOrEqual “小于等于”比较运算符。 与 <= 运算符相同。 levenshtein 获取两个字符串之间的 levenshtein 距离。 模式是按原义匹配的字符串。 以下特殊符号例外: _ 与输入中的任意一个字符相匹配(与 posix 正则表达式类似) locate 从特定的位置开始,在字符串中查找子字符串的位置(从 1 开始)。 如果省略位置,则考虑字符串的开头。 如果未找到,则返回 0。 计算对数值。 可以提供可选的底,否则使用欧拉数。 log10 以 10 为底计算对数值。 lower 将字符串小写。 在左侧使用提供的填充内容填充字符串,直到达到特定的长度。 如果字符串等于或大于长度,则将其剪裁至该长度。 ltrim 在左侧裁剪掉前导和尾随字符的字符串。 如果未指定第二个参数,则裁剪掉空格。 否则,剪裁掉第二个参数中指定的任何字符。 为不同基元数据类型的列集计算 MD5 摘要,并返回 32 字符的十六进制字符串。 它可用于计算行的指纹。 minus 减去数字。 从日期数中减去日期。 从时间戳中减去持续时间。 减去两个时间戳以获取差异(以毫秒为单位)。 与 - 运算符相同。 将数字对取模。 与 % 运算符相同。 multiply 将数字对相乘。 与 * 运算符相同。 negate 对数字求反。 将正数转换为负数,或反之。 nextSequence 返回下一个唯一序列。 该数字仅在分区中是连续的,带有 partitionId 前缀。 规范化字符串值以分隔重音的 unicode 字符。 逻辑求反运算符。 notEquals “不等于”比较运算符。 与 != 运算符相同。 返回 NULL 值。 如果存在名为“NULL”的列,请使用函数 syntax(null()) 。 使用该函数的任何操作将导致 NULL。 “逻辑或”运算符。 与 || 相同。 将数字对正数取模。 partitionId 返回输入行所在的当前分区 ID。 power 以一个数为底、另一数为幂求值。 radians 将度数转换成弧度 random 返回给定分区内的可选种子的随机数。 种子应为固定值,应与 partitionId 一起用于生成随机值 regexExtract 提取给定正则表达式模式的匹配子字符串。 最后一个参数标识匹配组,如果省略,则默认为 1。 使用 `<regex>` (反引号)匹配字符串且不进行转义。 regexMatch 检查字符串是否与给定的正则表达式模式相匹配。 使用 `<regex>` (反引号)匹配字符串且不进行转义。 regexReplace 将给定字符串中出现的正则表达式模式全部替换为另一个子字符串。使用 `<regex>` (反引号)匹配字符串且不进行转义。 regexSplit 基于分隔符和正则表达式拆分字符串,并返回字符串数组。 replace 将给定字符串中出现的一个子字符串全部替换为另一个子字符串。 如果省略最后一个参数,则默认为空字符串。 reverse 反转字符串。 right 从右侧提取包含字符数的子字符串。 与 SUBSTRING(str, LENGTH(str) - n, n) 相同。 rlike 检查字符串是否与给定的正则表达式模式相匹配。 round 根据可选的小数位数和可选的舍入模式将数字四舍五入。 如果省略小数位,则默认为 0。 如果省略模式,则默认为 ROUND_HALF_UP(5)。 用于舍入的值包括 在右侧使用提供的填充内容填充字符串,直到达到特定的长度。 如果字符串等于或大于长度,则将其剪裁至该长度。 rtrim 在右侧裁剪掉尾随字符的字符串。 如果未指定第二个参数,则裁剪掉空格。 否则,剪裁掉第二个参数中指定的任何字符。 计算不同基元数据类型的列集的 SHA-1 摘要,并返回 40 字符十六进制字符串。 它可用于计算行的指纹。 根据位长度计算不同基元数据类型的列集的 SHA-2 摘要,值只能为 0(256)、224、256、384、512。 它可用于计算行的指纹。 计算正弦值。 计算双曲正弦值。 soundex 获取字符串的 soundex 代码。 split 基于分隔符拆分字符串,并返回字符串数组。 计算一个数的平方根。 startsWith 检查字符串是否以提供的字符串开头。 substring 从某个位置提取特定长度的子字符串。 位置从 1 开始。 如果省略长度,则默认为字符串的末尾。 substringIndex 提取第 count 次出现的分隔符之前的子字符串。 如果 count 为正,则返回最终的分隔符左侧的所有内容(从左侧开始计算)。 如果 count 为负,则返回最终的分隔符右侧的所有内容(从右侧开始计算)。 计算正切值。 计算双曲正切值。 translate 将字符串中的一组字符替换为另一组字符。 对字符进行 1 对 1 的替换. 裁剪掉前导和尾随字符的字符串。 如果未指定第二个参数,则裁剪掉空格。 否则,剪裁掉第二个参数中指定的任何字符。 始终返回 true 值。 如果存在名为“true”的列,请使用函数 syntax(true()) typeMatch 匹配列的类型。 只可在模式表达式中使用。number 匹配短整型数、整数、长整型数、双精度数、浮点数或小数,integral 匹配短整型数、整数、长整型数,fractional 匹配双精度数、浮点数、小数,datetime 匹配日期或时间戳类型。 unescape 根据格式取消转义字符串。 可接受的格式的文本值为 "json"、"xml"、"ecmascript"、"html"、"java"。 upper 将字符串大写。 返回生成的 UUID。 逻辑 XOR 运算符。 与 ^ 运算符相同。