2

当我使用表输入并从步骤中插入数据来替换时?在 sql 中。

例如,

select * from a where b in (?).

从mysql日志,sql是select * from a where b in ('0,1,2,3')

没有'如何使它执行?

谢谢

4

1 回答 1

1

我看到了三种可能的方法。我猜你最喜欢选项“C”。

A)如果您知道您的 IN 子句始终只有 4 个值,您可以通过将 4 个值存储在 Job 变量中并使用 Get Variables 步骤将它们读入单行,然后将该行流入数据库查找来做到这一点步骤,其 SQL 如下所示:

select * from a where b in (?, ?, ?, ?)

并替换单个传入行中的值。

B)如果您有可变数量的值,我会考虑将值列表规范化为行,也许使用“将字段拆分为行”步骤,使用“添加常量”将“找到”值添加到每一行,然后将它们流入流查找。然后在 Stream Lookup 之后,将所有“找到”值为空的行流到 Dummy 步骤。

C) 在 Job 中构建您的值列表并将其作为变量传递。在您的表输入步骤中,使用如下语句:

select * from a where b in (${varname})

并检查“替换变量脚本”。该变量将在执行之前扩展为 SQL。

于 2013-01-30T20:33:33.413 回答