在 SQL 查询中使用参数

本文介绍如何在 Genie 空间中编写示例 SQL 指令时使用参数。

为何使用参数?

使用参数可以编写包含占位符的示例查询,以便在运行时替换特定值。 使用参数,Genie 可以从用户问题获取特定输入,并重复使用示例查询的结构,以作为受信任的资产提供已验证的答案。 例如,可以调整以前的 SQL 查询以包含按 o.forecastcategory 值筛选的参数,使查询能够解决不同预测类别中标记的机会的问题。 有关如何使用参数化查询生成标记为受信任资产的响应的详细信息,请参阅 AI/BI Genie 空间中使用受信任的资产。

以下示例查询按区域计算总开放管道值销售机会。 它包括o.forecastcategory值的一个参数。 参数使用与命名参数标记相同的语法。 有关在 Genie 空间中使用参数的更多指南,请参阅 使用查询参数命名参数标记

-- Return our current pipeline at a stage by region.
-- Opportunities are only considered pipelines if they are tagged as such.
  SELECT
    a.region__c AS `Region`,
    sum(o.amount) AS `Open Pipeline`
  FROM
    sales.crm.opportunity o
    JOIN sales.crm.accounts a ON o.accountid = a.id
  WHERE
    o.forecastcategory = :forecast_category AND
    o.stagename NOT ILIKE '%closed%'
  GROUP BY ALL;

若要向查询添加参数,请执行以下操作:

  1. 将光标置于查询中要放置参数的位置。

  2. 单击“添加参数 以插入新参数。

    这会使用默认名称 parameter创建一个新参数。 若要更改默认名称,请在查询编辑器中替换它。 还可以通过在编辑器中键入冒号和参数名称(:parameter_name)来添加参数。

编辑查询参数

若要编辑参数,请执行以下操作:

  1. 单击参数名称旁边的齿轮图标。 将显示 参数详细信息 对话框,其中包括以下配置选项:

    • 关键字:表示查询中的参数的关键字。 只能通过直接更新查询中的文本来更改关键字。

    • 显示名称:Genie 在聊天体验中使用的人类可读名称。 Genie 使用参数化查询生成响应时,它会在响应中包含显示名称和关联值。

    • 类型:支持的类型包括 字符串日期日期和时间,以及 数值

      • 默认类型为字符串
      • 数值 数据类型允许在 十进制整数之间指定。 默认数值类型为十进制

      注释

      如果实际输入值与所选参数类型不匹配,Genie 会将输入值视为不正确的类型,这可能会导致结果不准确。

  2. 单击 UI 的另一部分以关闭对话框。

参数化查询响应

在响应中使用参数的确切文本时,响应将标记为受信任。 这意味着 Genie 根据该空间的上下文识别出了用户问题与示例问题或查询的意图一致。

受信任的标签使空间用户知道 Genie 的响应基于经过审查的 SQL 查询。 他们可以看到响应中使用的生成的 SQL 和参数值。