Compartir a través de

映射数据流中的表达式函数

适用于: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 运算符。 与 ^ 运算符相同。