查询代码片段

通常,复制之前的内容进行修改比从头编写内容要简单得多。 对常见的 JOIN 语句或复杂的 CASE 表达式来说尤其如此。 查询列表在不断扩充,因此很难记住哪些查询包含你需要的语句。 你还可以创建一个包含插入点的查询代码片段,并在插入点放置用户可以在运行时替换的占位符文本。

查询片段是可使用自动补全功能进行共享和触发的查询段。 将查询代码片段用于:

  • 常用的 JOIN 语句
  • 复杂子句,例如 WITHCASE
  • 条件格式

下面是代码片段的示例:

--Simple snippet
WHERE fare_amount > 100

--Snippet with an insertion point for a value to be provided at runtime
WHERE fare_amount > ${1:value}

--Snippet with an insertion point for a value to be provided at runtime and containing a default value
WHERE fare_amount > ${1:100}

--Snippet with multiple insertion points
WHERE fare_amount > ${2:min_value} AND fare_amount < ${1:max_value} AND trip_distance < ${0:max_distance}

创建查询代码片段

通过以下步骤使用以下代码片段示例创建代码片段:

  1. 在工作区顶部栏中单击你的用户名,然后从下拉列表中选择“设置”

  2. 单击“开发人员”选项卡。

  3. SQL 查询代码片段旁边单击“管理”。

  4. 单击“创建查询代码片段”。

  5. 在“替换”字段中,输入代码片段名称。 编写使用此代码片段的查询时,你将使用此名称。

  6. (可选)输入说明。

  7. 在“片段”字段中,输入片段。

  8. 单击 “创建”

    查询片段

在查询中使用查询代码片段

下面是一个简单的查询示例,你可以在其中使用以下查询代码片段:

--Simple query
SELECT * FROM samples.nyctaxi.trips

通过以下步骤在此查询中使用一个查询代码片段:

  1. 打开 SQL 编辑器。

  2. 在 SQL 编辑器查询窗格中键入你的查询。

  3. 键入代码片段名称的前 3 个字母,然后从自动完成窗口中选择一个代码片段。 还可以通过按 Option + Space 并选择一个代码片段来手动打开窗口。

    选择代码片段的查询

  4. 使用查询代码片段中的 WHERE 子句执行查询。

    显示查询中使用的代码片段的查询

使用查询代码片段中的插入点

可使用一个美元符号加大括号 ${} 将整数 Tab 键顺序括起来,从而指定插入点。 前面带有一个冒号 : 的文本占位符是可选的,但对不熟悉你的片段的用户来说很有用。 在你之前创建的具有插入点的查询代码片段中,${1:value} 是包含占位符的一个插入点,${1:100} 是包含你在运行时可以改写的占位符默认值的一个插入点。 当 Databricks SQL 呈现代码片段时,将去除美元符号 $ 和大括号 {},并突出显示单词 value 或默认值 100 以便替换。

当有多个插入点时,文本插入光标将跳转到第一个插入点,以提示输入所需的值。 当你按 Tab 时,光标将跳转到下一个插入点,以便输入下一个值。 再次按 Tab 时,光标将跳转到下一个插入点的行,直到到达最终插入点。

注意

${0} 的插入点始终是 Tab 键顺序中的最后一个点。

通过以下步骤在查询中使用插入点查询代码片段:

  1. 打开 SQL 编辑器。

  2. 在 SQL 编辑器查询窗格中键入你的查询。

  3. 键入查询代码片段名称的前 3 个字母,然后选择一个所含插入点没有默认值的查询代码片段。

    该查询代码片段将被添加到查询中,并且文本插入光标将跳转到插入点。

    使用没有默认值的插入点查询代码片段的查询

  4. WHERE 子句输入一个值,例如 200

  5. (可选)使用查询代码片段中的 WHERE 子句执行查询。

  6. 重复前面的步骤,但选择所含插入点使用默认值的查询代码片段。

    使用包含默认值的插入点查询代码片段的查询

  7. 重复前面的步骤,但选择包含多个插入点的查询代码片段。

    使用包含多个插入点的插入点查询代码片段的查询

  8. 为第一个插入点输入值,按 Tab 键前进到下一个插入点并输入值,然后按 Tab 键前进到最后一个插入点并输入值。