联接表时自动调整
在以下两种情况下联接两个表时,Analytics 会自动统一键域:
- 您使用一个字符键域和一个数值键域
- 您使用不同长度的字符键域
自动协调简化了某些种类的联接,减少了相关劳动。
每当 Analytics 自动统一键域时,都会在命令日志中记录操作和相关语法。
字符数值关键字域联接的自动调整
如果使用一个字符和一个数值关键字域联接表格,Analytics 在执行联接时,会使用 VALUE( ) 函数自动调整数据类型,将字符域转换为数值域。
示例
您想要使用社会安全号作为公共键域来联接两个表。
- 一个键域包含被格式化为字符数据的数字和标点符号:555-44-3322
- 其他键域只包含被格式化为数值数据的数字:555443322
因为 Analytics 自动协调字符-数值联接,因此您无需首先使用函数手动协调域即可执行标准联接。
附加详细信息
- 在匹配数值域中的值时,会忽略字符域中的所有字母字符或标点符号(如连字符和括号),仅考虑数字。
- 字母字符的位置不影响数值匹配。
- 在产生的联接表中,字符域保留其原始数据类型和所有字符,包括字母和标点。
- 字符域和数值域都可以是主键域。
- 字符域和字符域中的数值字符都不需要和数值域保持相同长度。无论域长度如何,仅匹配完全相同的数值类型值。
自动协调涉及负数
字符和数值关键字域的自动调整不会完全支持负数的匹配。为了解释 VALUE( ) 函数的某些预期行为,Analytics 还在字符键域上使用 ABS( ) 函数,在执行联接时,暂时将所有数值转换为正数。
如果希望自动调整包含负数的关键字域,请按常规方式执行联接,然后使用手动编辑的命令日志条目重新运行联接,仅将 VALUE( ) 函数应用到字符关键字域。当联接字符关键字域和包含负值的数值关键字域时,此方法能产生正确结果,但是如果任一域中存在非数值数据,则此方法并不可靠。
字符关键字域长度的自动调整
如果您在联接表时选择具有不同长度的字符键域,则 Analytics 会通过向较短的域添加空白来协调它们的长度。在产生的联接表中,较短的域保留其原来长度。
自动长度调整还适用于基于字符的计算关键字域,以及由多个字符关键字域组成的常见关键字。
仅能自动调整字符关键字域的长度。数值和日期时间关键字域不是。
不受协调影响的值的匹配
调整了长度的字符关键字域中的值匹配仍取决于值自身间的精确匹配。尽管在联接处理过程中,较短形式和较长形式的值(例如 ‘ABC’ 和 ‘ABC Corporation’)被包含在具有协调长度的域中,但它们仍然不会构成匹配。