映射数据流中的表达式函数
适用于: Azure 数据工厂 Azure Synapse Analytics
提示
试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用!
数据流在 Azure 数据工厂和 Azure Synapse 管道中均可用。 本文适用于映射数据流。 如果不熟悉转换,请参阅介绍性文章使用映射数据流转换数据。
以下文章详细介绍了映射数据流中 Azure 数据工厂和 Azure Synapse Analytics 所支持的表达式函数。
表达式函数列表
在数据工厂和 Synapse 管道中,使用映射数据流功能的表达式语言来配置数据转换。
表达式函数 | 任务 |
---|---|
abs | 数字的绝对值。 |
acos | 计算反余弦值。 |
add | 添加一对字符串或数字。 将日期添加到日期数。 将持续时间添加到时间戳。 将类似类型的数组追加到另一个数组。 与 + 运算符相同。 |
and | “逻辑与”运算符。 与 && 相同。 |
asin | 计算反正弦值。 |
assertErrorMessages | 返回所有断言消息的映射。 |
atan | 计算反正切值。 |
atan2 | 返回平面正 X 轴与给定坐标点之间的弧角。 |
between | 检查第一个值是否在两个其他值之间(含这两个值)。 可以比较数字、字符串和日期值 |
bitwiseAnd | 跨整数类型的位和运算符。 与 & 运算符相同。 |
bitwiseOr | 跨整数类型的位或运算符。 与 | 运算符相同。 |
bitwiseXor | 跨整数类型的位或运算符。 与 | 运算符相同。 |
blake2b | 为给定位长度的不同基元数据类型的列集计算 Blake2 摘要。 位长度只能介于 8 到 512 之间,且是 8 的倍数。 它可用于计算行的指纹。 |
blake2bBinary | 如果给定位长只能是 8 和 512 之间的 8 的倍数,计算具有不同基元数据类型的列集的 Blake2 摘要。 它可用于计算行的指纹 |
case | 根据备用条件应用一个值或另一个值。 如果输入的数字是偶数,对于最后一个条件,另一个值将默认为 NULL。 |
cbrt | 计算一个数的立方根。 |
ceil | 返回不小于该数字的最小整数。 |
coalesce | 返回一组输入中的第一个非 NULL 值。 所有输入应属于同一类型。 |
columnNames | 获取流的所有输出列的名称。 可以将可选流名称传递为第一个参数,并传递可选的第二个参数,以便只返回架构偏移列。 |
列 | 获取流的所有输出列的值。 可以将可选流名称作为第二个参数传递。 |
compare | 比较同一类型的两个值。 如果 value1 < value2,则返回负整数,如果 value1 == value2,则返回 0,如果 value1 > value2,则返回正值。 |
concat | 将字符串的可变数字连接在一起。 与包含字符串的 + 运算符相同。 |
concatWS | 使用分隔符将字符串的可变数字连接在一起。 第一个参数是分隔符。 |
cos | 计算余弦值。 |
cosh | 计算某个值的双曲余弦值。 |
crc32 | 根据给定位长度为不同基元数据类型的列集计算 CRC32 哈希。 位长度必须为值 0 (256)、224、256、384 或 512。 它可用于计算行的指纹。 |
degrees | 将弧度转换为度。 |
divide | 将数字对相除。 与 / 运算符相同。 |
dropLeft | 删除字符串左侧任意数目的字符。 如果请求删除的字符数超过了该字符串的长度,则返回空字符串。 |
dropRight | 删除字符串右侧任意数目的字符。 如果请求删除的字符数超过了该字符串的长度,则返回空字符串。 |
endsWith | 检查字符串是否以提供的字符串结尾。 |
equals | “等于”比较运算符。 与 == 运算符相同。 |
equalsIgnoreCase | 忽略大小写的比较等于运算符。 与 <=> 运算符相同。 |
escape | 根据格式转义字符串。 可接受的格式的文本值为 "json"、"xml"、"ecmascript"、"html"、"java"。 |
expr | 通过字符串生成一个表达式。 它相当于在非文本窗体中编写表达式,并可用于以字符串表示形式传递参数。 |
阶乘 | 计算一个数的阶乘。 |
false | 始终返回 false 值。 如果存在名为“false”的列,请使用函数 syntax(false()) 。 |
floor | 返回不大于该数字的最大整数。 |
fromBase64 | 对给定的 base64 编码的字符串进行解码。 |
greater | “大于”比较运算符。 与 > 运算符相同。 |
greaterOrEqual | “大于等于”比较运算符。 与 >= 运算符相同。 |
greatest | 返回输入值列表中的最大值,跳过 NULL 值。 如果所有输入均为 NULL,则返回 NULL。 |
hasColumn | 在流中按名称检查列值。 可以将可选流名称作为第二个参数传递。 设计时已知的列名应该只按名称进行寻址。 不支持计算输入,但可以使用参数替换。 |
hasError | 检查具有所提供 ID 的断言是否标记为错误。 |
iif | 根据条件应用一个值或另一个值。 如果未指定,则将其视为 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 | “小于等于”比较运算符。 与 <= 运算符相同。 |
left | 从索引 1 处开始提取包含字符数的子字符串。 与 SUBSTRING(str, 1, n) 相同。 |
length | 返回字符串的长度。 |
lesser | “小于”比较运算符。 与 < 运算符相同。 |
lesserOrEqual | “小于等于”比较运算符。 与 <= 运算符相同。 |
levenshtein | 获取两个字符串之间的 levenshtein 距离。 |
like | 模式是按原义匹配的字符串。 以下特殊符号例外: _ 与输入中的任意一个字符相匹配(与 posix 正则表达式类似) |
locate | 从特定的位置开始,在字符串中查找子字符串的位置(从 1 开始)。 如果省略位置,则考虑字符串的开头。 如果未找到,则返回 0。 |
log | 计算对数值。 可以提供可选的底,否则使用欧拉数。 |
log10 | 以 10 为底计算对数值。 |
lower | 将字符串小写。 |
lpad | 在左侧使用提供的填充内容填充字符串,直到达到特定的长度。 如果字符串等于或大于长度,则将其剪裁至该长度。 |
ltrim | 在左侧裁剪掉前导和尾随字符的字符串。 如果未指定第二个参数,则裁剪掉空格。 否则,剪裁掉第二个参数中指定的任何字符。 |
md5 | 为不同基元数据类型的列集计算 MD5 摘要,并返回 32 字符的十六进制字符串。 它可用于计算行的指纹。 |
minus | 减去数字。 从日期数中减去日期。 从时间戳中减去持续时间。 减去两个时间戳以获取差异(以毫秒为单位)。 与 - 运算符相同。 |
mod | 将数字对取模。 与 % 运算符相同。 |
multiply | 将数字对相乘。 与 * 运算符相同。 |
negate | 对数字求反。 将正数转换为负数,或反之。 |
nextSequence | 返回下一个唯一序列。 该数字仅在分区中是连续的,带有 partitionId 前缀。 |
规范化 | 规范化字符串值以分隔重音的 unicode 字符。 |
not | 逻辑求反运算符。 |
notEquals | “不等于”比较运算符。 与 != 运算符相同。 |
null | 返回 NULL 值。 如果存在名为“NULL”的列,请使用函数 syntax(null()) 。 使用该函数的任何操作将导致 NULL。 |
or | “逻辑或”运算符。 与 || 相同。 |
pMod | 将数字对正数取模。 |
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)。 用于舍入的值包括 |
rpad | 在右侧使用提供的填充内容填充字符串,直到达到特定的长度。 如果字符串等于或大于长度,则将其剪裁至该长度。 |
rtrim | 在右侧裁剪掉尾随字符的字符串。 如果未指定第二个参数,则裁剪掉空格。 否则,剪裁掉第二个参数中指定的任何字符。 |
sha1 | 计算不同基元数据类型的列集的 SHA-1 摘要,并返回 40 字符十六进制字符串。 它可用于计算行的指纹。 |
sha2 | 根据位长度计算不同基元数据类型的列集的 SHA-2 摘要,值只能为 0(256)、224、256、384、512。 它可用于计算行的指纹。 |
sin | 计算正弦值。 |
sinh | 计算双曲正弦值。 |
soundex | 获取字符串的 soundex 代码。 |
split | 基于分隔符拆分字符串,并返回字符串数组。 |
sqrt | 计算一个数的平方根。 |
startsWith | 检查字符串是否以提供的字符串开头。 |
substring | 从某个位置提取特定长度的子字符串。 位置从 1 开始。 如果省略长度,则默认为字符串的末尾。 |
substringIndex | 提取第 count 次出现的分隔符之前的子字符串。 如果 count 为正,则返回最终的分隔符左侧的所有内容(从左侧开始计算)。 如果 count 为负,则返回最终的分隔符右侧的所有内容(从右侧开始计算)。 |
tan | 计算正切值。 |
tanh | 计算双曲正切值。 |
translate | 将字符串中的一组字符替换为另一组字符。 对字符进行 1 对 1 的替换. |
trim | 裁剪掉前导和尾随字符的字符串。 如果未指定第二个参数,则裁剪掉空格。 否则,剪裁掉第二个参数中指定的任何字符。 |
true | 始终返回 true 值。 如果存在名为“true”的列,请使用函数 syntax(true()) 。 |
typeMatch | 匹配列的类型。 只可在模式表达式中使用。number 匹配短整型数、整数、长整型数、双精度数、浮点数或小数,integral 匹配短整型数、整数、长整型数,fractional 匹配双精度数、浮点数、小数,datetime 匹配日期或时间戳类型。 |
unescape | 根据格式取消转义字符串。 可接受的格式的文本值为 "json"、"xml"、"ecmascript"、"html"、"java"。 |
upper | 将字符串大写。 |
uuid | 返回生成的 UUID。 |
xor | 逻辑 XOR 运算符。 与 ^ 运算符相同。 |
相关内容
- 所有聚合函数的列表。
- 所有数组函数的列表。
- 所有高速缓存的查找函数的列表。
- 所有转换函数的列表。
- 所有 日期和时间函数的列表。
- 所有 地图函数的列表。
- 所有元函数的列表。
- 所有窗口函数的列表。
- 所有数据转换表达式的使用情况详细信息。
- 了解如何使用表达式生成器。