如何在临时 table 的新列中添加标识符 'flag' 作为 SQL Server 2017 中 CTE 表达式的一部分?
How can I add an identifier 'flag', in a new column on a temporary table, as part of a CTE expression in SQL Server 2017?
我是一名 SQL 服务器初学者,并且构建了一个 WITH 语句来执行数据集比较练习。
由于我在进行一系列操作,首先将我的主要数据集A从多个次要tables中合并,然后进行核对,然后过滤以检查特定条件,我认为它会是为此最好使用 CTE。
现在,我正处于确定几类异常的阶段,我想在语句末尾将其放入最终 table 中,并标记为随着我的进行,它们出现在一个新的专栏中。请参见下面的示例:
Exception_Table_1
(col1, col2, col3, col4, col5)
AS
(
SELECT * FROM Source_Table WHERE <filter here>
)
;
Exception_Table_2
(col1, col2, col3, col4, col5)
AS
(
SELECT * FROM Source_Table WHERE <filter here>
)
INSERT INTO
destination_table
SELECT * FROM Exception_Table_1
UNION ALL
SELECT * FROM Exception_Table_2
table 结构,数据类型在源 table 中完全相同,并且由此产生的异常 table 实际上是该源 table 的过滤视图。作为一个额外的并发症,异常 tables 正在被进一步细分,但我暂时保留它。
我的问题是 - 我能否在异常表 1 和 2 中添加一个新列,其默认值为“1”和“2”,指示异常的性质,也可以将其复制到destination_table?
我的代码如上所示工作 - 但由于没有标识符,我还必须为异常 tables 1 和 2 创建 'real' tables,只是计算每个类别中的数字——这首先违背了使用 CTE 的意义。
我在论坛的其他地方看过,不,使用 ALTER / UPDATE 似乎没有帮助。
SQL 服务器 2017 顺便说一句。
期待您的回复,非常感谢您抽出时间提供帮助;非常感谢!
更新:问题已解决 :) 非常感谢 Jonathan - 但是,恐怕该语法不起作用。我最终使用了 CAST 函数,如下所示:SELECT *,CAST('default_value' AS varchar(8)) AS col6 FROM.... 等等。在每个异常 table CTE 中。结果是要分析的一组整齐标记的异常,这也意味着我在 1 table 而不是 5 :)
中拥有我想要的所有数据
我是一名 SQL 服务器初学者,并且构建了一个 WITH 语句来执行数据集比较练习。
由于我在进行一系列操作,首先将我的主要数据集A从多个次要tables中合并,然后进行核对,然后过滤以检查特定条件,我认为它会是为此最好使用 CTE。
现在,我正处于确定几类异常的阶段,我想在语句末尾将其放入最终 table 中,并标记为随着我的进行,它们出现在一个新的专栏中。请参见下面的示例:
Exception_Table_1
(col1, col2, col3, col4, col5)
AS
(
SELECT * FROM Source_Table WHERE <filter here>
)
;
Exception_Table_2
(col1, col2, col3, col4, col5)
AS
(
SELECT * FROM Source_Table WHERE <filter here>
)
INSERT INTO
destination_table
SELECT * FROM Exception_Table_1
UNION ALL
SELECT * FROM Exception_Table_2
table 结构,数据类型在源 table 中完全相同,并且由此产生的异常 table 实际上是该源 table 的过滤视图。作为一个额外的并发症,异常 tables 正在被进一步细分,但我暂时保留它。
我的问题是 - 我能否在异常表 1 和 2 中添加一个新列,其默认值为“1”和“2”,指示异常的性质,也可以将其复制到destination_table?
我的代码如上所示工作 - 但由于没有标识符,我还必须为异常 tables 1 和 2 创建 'real' tables,只是计算每个类别中的数字——这首先违背了使用 CTE 的意义。
我在论坛的其他地方看过,不,使用 ALTER / UPDATE 似乎没有帮助。
SQL 服务器 2017 顺便说一句。
期待您的回复,非常感谢您抽出时间提供帮助;非常感谢!
更新:问题已解决 :) 非常感谢 Jonathan - 但是,恐怕该语法不起作用。我最终使用了 CAST 函数,如下所示:SELECT *,CAST('default_value' AS varchar(8)) AS col6 FROM.... 等等。在每个异常 table CTE 中。结果是要分析的一组整齐标记的异常,这也意味着我在 1 table 而不是 5 :)
中拥有我想要的所有数据