首页 > 解决方案 > 在一个视图中运行两个选择语句?

问题描述

我有一些 SQL 被分成两个 SELECT 语句。第一个 SELECT 语句将结果插入到临时表中。第二个 SELECT 语句是一个 COALESCE,它从第一个插入数据的临时表中读取数据。我需要能够一起运行这些(一个接一个),不幸的是,由于我公司使用的旧报告工具,我无法将它们放入存储过程中。报告工具必须从 VIEW 或 TABLE 中读取。我想把这些放到一个 VIEW 中,但研究过一个视图不能有多个 SELECT。关于如何做到这一点的任何想法和例子?我的原始帖子/显示 SQL 的解决方案在这篇文章中。

标签: sqlsql-servertsql

解决方案


临时表选择可以转换为 CTE(With 子句),第二部分是视图的选择查询。

或者,您可以将其与子选择内联,但取决于可能使其更难维护的复杂性。

CREATE VIEW yourView AS
WITH myFirstSelect(someFields) AS
(
    SELECT somefields FROM sometable
)
SELECT * from myFirstSelect

文档:https ://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql?view=sql-server-2017


推荐阅读