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