# 是否可以为查询参数设置别名？

**URL:** https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643
**Category:** Support
**Tags:** data-explorer
**Created:** [2023年八月25日 17:05 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643 "2023-08-25T17:05:34Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [2023年八月25日 17:05 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/1 "2023-08-25T17:05:34Z")

</div>

查询参数因其显而易见的原因而非常有用。但是，当您向不太懂技术的用户提供数据探索器查询时，他们有时会对名称感到困惑（即使它只是一个带有下划线的变量名）。

您能否为查询参数设置别名，以便在查询下方显示一个更友好的名称？

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [2023年八月25日 17:23 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/2 "2023-08-25T17:23:20Z")

</div>

你好 @jordan-violet 👋 我认为可以这样做——这是你的意思吗？

```sql
SELECT column_name AS alias_name
FROM table_name;
...

```

或者像

```sql
SELECT column_name(s)
FROM table_name AS alias_name
....

```

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [2023年八月25日 17:25 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/3 "2023-08-25T17:25:22Z")

</div>

抱歉，是查询的输入参数。像这样：

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/4/f/24f0dd659952cf40136ff72a8de75754b896ee20.png)

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [2023年八月25日 17:26 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/4 "2023-08-25T17:26:09Z")

</div>

哦，抱歉，我误解了你的问题！嗯 🤔

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [2023年八月26日 01:55 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/6 "2023-08-26T01:55:48Z")

</div>

我相信您可以在 [Data Explorer](https://meta.discourse.org/t/32566?silent=true) 中编辑查询，并添加有关如何设置参数的说明。运行报表时将显示该说明：

 ![IMG_0281](https://global.discourse-cdn.com/meta/original/4X/e/1/c/e1cf70388b19582605294c9f60e3fe6da8afc7e6.jpeg)

 ![IMG_0282](https://global.discourse-cdn.com/meta/original/4X/5/f/3/5f3aaefc3d5763ded48b8ef4fecc6ef1a67f7957.jpeg)

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [2023年八月26日 01:57 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/7 "2023-08-26T01:57:16Z")

</div>

是的，我现在有了，但当您试图让销售、市场营销等非技术人员更容易理解这些报告时，它的打磨程度还不够。

事实上，如果能更进一步，还能提供定义工具提示/信息图标描述的选项，那就更好了。

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [2023年八月26日 04:21 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/8 "2023-08-26T04:21:00Z")

</div>

> [@jordan-violet](#):
>
> 当你试图让这些报告对_非常_非技术人员友好时，它就不那么完善了。

DE 非常原始……构建一个不同的 UI（无论是网页、电子表格还是应用程序）可能是一个好主意。

Grafana 是一个很好的例子！

Grafana 有一个[关于他们从 Data Explorer 实时提取的社区报告的实时演示](https://play.grafana.org/d/6Hg9LVd4z/grafana-community-forum-category-response-rate?orgId=1)。

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [2023年八月26日 04:23 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/9 "2023-08-26T04:23:19Z")

</div>

是的，我们在业务中使用 Tableau，并且导出所有 Discourse 数据以便在那里使用。

但我确实喜欢让用户（包括内部用户）使用该平台。我总是尽量提倡使用更少的工具，避免工具泛滥。

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2023年八月26日 05:07 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/10 "2023-08-26T05:07:17Z")

</div>

就我而言，我真的很喜欢这个主意。我认为添加一个“友好的标签/占位符”将是一个很好的补充。但我不知道该如何实现。🤔

---

<div class="post-metadata">

### Author: ![jordan-violet](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jordan-violet/32/281428_2.png) [@jordan-violet](https://meta.discourse.org/u/jordan-violet)
#### Post date: [2023年八月26日 12:05 UTC](https://meta.discourse.org/t/is-it-possible-to-give-an-alias-to-a-query-parameter/276643/11 "2023-08-26T12:05:26Z")

</div>

有这么多选择！

一个更简单的解决方案是检查当前使用的可选标签变量，例如：

```plaintext
-- [params]
-- text :user_group
-- label: "您想在此查询中查找的客户的Salesforce帐户名称。"
-- text :topic_id

```

诚然，我已经五年多没有全职从事开发工作了，现在也是如此，所以我不能假装知道当前实现的细节或下一个建议的可能复杂性……但如果你们在 SQL 查询的开头实现了 Front Matter，那将是太棒了。Front Matter 可以是 yaml、toml，甚至是 json，而且肯定比当前的实现更美观。在我看来，它在视觉上看起来更容易添加选项。具有理论 Front Matter 实现的查询可能看起来像这样：

```plaintext
---
user_id:
  description: "您想在此查询中查找的客户的Salesforce帐户名称。"
  tooltip: "从用户的Salesforce帐户获取此信息，通常与其电子邮件域相关联。它应该完全匹配。"
topic_id:
  description: "这是您想研究的主题的ID。"
event_attendance_type:
  default: 0
---

SELECT ue.user_id, u.name, u.title, ue.email
FROM discourse_post_event_invitees ei
JOIN posts p ON p.id = ei.post_id
JOIN user_emails as ue ON ue.user_id = ei.user_id
JOIN users as u on ei.user_id = u.id
WHERE p.topic_id = :topic_id
AND ei.status = 0

```
