给定一个数据库表,如何使用宏和循环来更改SELECT的多个“where”值

Somnath_DasSomnath_Das 成员职位:31Maven
给定一个数据库表,我如何使用宏来改变使用rapidminer选择查询的多个“在哪里”值?我已经创建了一个示例过程,但那里的WHERE子句有一个条件。我要检查多个条件。

例如,如果我想检查像ACCOUNT_NO和CUSTOMER_ID我如何使用宏和循环,以便子进程将运行以下语句?

Select * from Table where account_no=suppliedValue_1 and customer_id=suppliedValue_2


< ?xml version="1.0" encoding="UTF-8"?> <过程version = " 9.9.000”>

> <上下文

<输入/ >

<输出/ >

<宏/ >

> < /上下文

<过程扩展= " true " >

< /操作符>

<过程扩展= " true " >

“参数”<枚举关键= >

< /枚举>

< /操作符>

> < /过程

< /操作符>

< /操作符>

> < /过程

< /操作符>

> < /过程


最佳答案

  • kaymankayman 成员职位:662独角兽
    解决方案接受
    相同的逻辑,但使用'generate macro'而不是set macro。然后,您的逻辑定义分配给宏的值。

答案

  • kaymankayman 成员职位:662独角兽
    2021年5月编辑
    可以使用set宏操作符。在这个示例中,您定义了像accountnumber = 1234这样的值。

    然后在数据库查询中使用宏语法,如%{accountnumber}

    就是这样。您可以根据需要创建任意多的宏,因此选择语句如下所示

    Select * from Table where account_no=%{accountnumber} and customer_id=%{custid}
  • Somnath_DasSomnath_Das 成员职位:31Maven
    我想通过宏动态地分配它。
  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:873独角兽
    嗨!

    使用准备好的查询,输入参数及其类型(在您的示例中,是这种语法中的%{macros}),并使用?(问号)以适当的顺序。

    这将在许多数据库系统中获得更好的性能,并避免SQL注入。

    问候,
    Balazs
登录注册置评。