【发布时间】:2022-08-12 05:15:23
【问题描述】:
-
源和目标中的列的类型是什么?
-
float 永远不会匹配。值 1 通常呈现为 1.000000000001 或 .99999999997。如果您必须使用浮点数并且您尝试使用这些列来连接,您可能需要四舍五入并更改您的数据类型。
根据有关查找转换的 Microsoft 文档 (https://docs.microsoft.com/en-us/sql/integration-services/data-flow/transformations/lookup-transformation?view=sql-server-ver16),您不能使用浮点数据类型(DT_R8,它是双精度浮点值)进行查找:
转换支持任何数据类型的连接列,除了 对于 DT_R4、DT_R8、DT_TEXT、DT_NTEXT 或 DT_IMAGE。更多 有关信息,请参阅 Integration Services 数据类型。
这是因为,正如@KeithL 正确指出的那样,浮点并不精确。如果参考数据集使用浮点,那么您必须先更改那里的数据类型。然后为用于连接的匹配输入字段使用兼容的数据类型。
【讨论】: