【问题标题】:Possible to name query results for future use without a table?可以在没有表的情况下命名查询结果以供将来使用?
【发布时间】:2017-07-11 03:28:41
【问题描述】:

在 SQL Server 2008 中工作,我只能访问创建查询,而不是表或视图。我的问题与更好地构建代码有关。

我提供的视图为我提供了包含太多信息的多个数据集。我正在尝试根据要求的细节精简数据,以便于使用和参考。

我的目标是拥有 (3) 个列出我需要的所有数据的主要查询,并为多个报告引用和重用这些数据。

查询 1 - 事件:列出通话的所有详细信息 查询 2 - 单位:列出响应呼叫的单位的所有详细信息 查询 3 - 1stUnits:仅列出第一个响应单元的所有详细信息。

因为这些查询中的每一个都将在其中包含多个 CASE 语句,所以我一直在寻找一种方法来命名实际查询,并在查询中将查询引用为 Qry1Calls 或 Qry2Units,而不需要扩展子查询。

我搜索了一下,什么也没找到。

选择 id 匹配的 Qry1 和 Qry3 并通过参数过滤这些结果会容易得多。

这可能吗?我正在从带有一些 SQL 的 Access 过渡到完整的 SQL。

【问题讨论】:

  • 这我不清楚。您能否展示示例查询以更好地描述您的意思?
  • 我没有方便的查询,对此表示歉意。我可以告诉你的是,我有几页案例语句可以将代码#s 转换为描述、类别、6-8 个不同时间范围的时间范围等。我只需要知道你是否可以命名一个查询,如别名和引用该别名以加入另一个别名。
  • 如果我可以为每个查询创建一个视图,那就不会那么困难了。
  • 据我了解,您希望保存这些查询的结果以供重复使用。如果是这样,那么您可以使用临时表。查看这些谷歌搜索结果:google.com.au/…
  • 谢谢,我已将 CTE、派生表和临时表添加到我明天的研究和测试列表中。非常感谢。

标签: sql-server alias naming


【解决方案1】:

您正在寻找的可能是通用表表达式 (CTE)

在这里阅读它们:

https://msdn.microsoft.com/en-us/library/ms190766(SQL.90).aspx

with 关键字的参考和此处的示例:

https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql

【讨论】:

  • 谢谢,我明天试试,看看它对我有什么作用。仍然在学习。到时我会发布更新。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多