如何在临时表的新列中添加标识符 "标志",作为SQL Server 2017中CTE表达式的一部分?

问题描述 投票:-2回答:1

我是一个SQL Server初学者,我已经构建了一个WITH语句来执行一个数据集比较练习。

由于我正在执行一系列的操作,首先从一些二级表合并我的主数据集A,然后进行调节,再进行过滤器以检查特定的条件,我认为最好使用CTE来实现这一目的。

现在,我处于这样一个阶段:我已经确定了几类异常,我想在语句结束时把它们扔进一个最终的表中,并希望在我进行的过程中把它们标注在一个新的列中。见下面的例子。

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

整个源表的表结构和数据类型是完全一样的 而产生的异常表实际上是源表的过滤视图。作为一个额外的复杂因素,异常表被进一步分割,但我暂时不考虑这个问题。

我的问题是--我是否可以在异常表1和表2中添加一个新的列,它的默认值为 "1 "和 "2",表示异常的性质,它也可以被复制到目的表中?

我的代码工作原理如上图所示--但由于没有标识符,我还必须为异常表1和表2创建 "真正的 "表,只是为了统计每个类别的数量--这有点违背了使用CTE的初衷。

我在论坛的其他地方看了看,没有,使用ALTER UPDATE似乎没有帮助。

另外,SQL Server 2017。

我期待你的回复,非常感谢你花时间来帮助我,非常感谢!

sql-server analytics common-table-expression sql-server-2017
1个回答
0
投票

更新:问题解决了 :) 非常感谢Jonathan--然而,这种语法恐怕并不奏效。我最终使用了CAST函数,如下所示。SELECT *, CAST('default_value' AS varchar(8)) AS col6 FROM......等等,在每个异常表CTE中。结果是一套整齐的异常标签来分析,同时也意味着我在1张表而不是5张表中得到了我想要的所有数据:)

© www.soinside.com 2019 - 2024. All rights reserved.