LEADINGZEROS( ) 函数
向字符串或数字中添加前导零。
语法
LEADINGZEROS(字符串/数字, 长度)
参数
名称 | 类型 | 描述 |
---|---|---|
字符串/数字 | 字符 数值 |
要向其添加前导零的域、表达式或字面量值。 在添加前导零之前,将自动从字符值和字符表达式的结果中消除前导和曳尾空格。 |
长度 | 数值 |
输出字符串的长度。 说明 字符串/数字中任何比长度长的值都被从左侧截断。 |
输出
字符。
示例
基本示例
字符输入
返回 "000235",因为长度大于字符串/数字中的字符数,所以三个前导零被添加到结果中:
LEADINGZEROS("235", 6)
返回“35”,因为长度小于字符串/数字中的字符数,所以结果被从左侧截断:
LEADINGZEROS("235", 2)
整数输入
返回“235”:
LEADINGZEROS(235, 3)
返回 "00235",因为长度大于字符串/数字中的数字个数,所以两个前导零被添加到结果中:
LEADINGZEROS(235, 5)
小数输入
返回 "023585",因为 LEADINGZEROS( ) 移除小数点:
LEADINGZEROS(235.85, 6)
负数输入
返回 "0644894",因为 LEADINGZEROS( ) 移除负号:
LEADINGZEROS(-6448.94, 7)
高级示例
向包含数字的字符域添加前导零
Employee_Number 域包含值 "254879"。 您需要将该值转换为具有前导零的 10 数字字符串。
COMMENT 返回 "0000254879" ASSIGN v_str_length = 10 LEADINGZEROS(Employee_Number, v_str_length)
在关联表时协调键域
您有两个表 Ar 和 Customer,并且您计划按客户编号键域关联它们以做进一步分析。 但是,这两个键域具有不同的数据格式,这会妨碍值匹配:
表 | 键域 | 数据类型 | 域长度 | 示例 |
---|---|---|---|---|
Ar | CustNum | 数值 | 4 | 4455 |
Customer | CustNo | 字符 |
6 (用前导零填充数字) |
"004455" |
为了在关联时协调这些域,您在 Ar 表中创建了一个使用 LEADINGZEROS( ) 函数的计算域。 然后,您使用该计算域进行关联:
OPEN Customer INDEX ON CustNo TO Customer_on_CustNo OPEN 应收账款 COMMENT 创建计算域 CustNum_Zeros,它将 CustNum 域转换为字符数据类型并添加前导零。 DEFINE FIELD CustNum_Zeros COMPUTED LEADINGZEROS(CustNum,6) COMMENT 使用刚创建的 CustNum_Zeros 计算域关联 Ar 表。 DEFINE RELATION CustNum_Zeros WITH Customer INDEX Customer_on_CustNo
备注
工作原理
如果您指定的输出长度大于输入值的长度,则此函数会向输出中添加前导零。 该函数接受各种字符和数值输入,并且输出一个字符串。 该函数在 Unicode 和非 Unicode 版本的 Analytics 中的工作方式相同。
该函数常用于标准化需要前导零的域,例如支票编号、采购订单编号和发票编号域。
输入长度和输出值
输入长度 | 输出值 |
---|---|
字符串/数字小于长度 | 添加的前导零 |
字符串/数字等于长度 | 未添加零 |
字符串/数字大于长度 | 值被从左侧截断 |
负号、千位分隔符和小数点
输入值 | 结果 |
---|---|
数值 |
LEADINGZEROS( ) 从数值输入值中移除负号、千位分隔符和小数点。 被移除的符号不会被包括在输入值的长度中。 |
字符 |
LEADINGZEROS( ) 不会从字符输入值中移除负号、千位分隔符或者小数点。 移除的符号被包括在输入值的长度中。 |