映射数据流中的表达式函数
适用于:Azure 数据工厂 Azure Synapse Analytics
数据流在 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 运算符。 与 ^ 运算符相同。 |
相关内容
- 所有聚合函数的列表。
- 所有数组函数的列表。
- 所有高速缓存的查找函数的列表。
- 所有转换函数的列表。
- 所有 日期和时间函数的列表。
- 所有 地图函数的列表。
- 所有元函数的列表。
- 所有窗口函数的列表。
- 所有数据转换表达式的使用情况详细信息。
- 了解如何使用表达式生成器。