将一个派生表插入到新创建的表中。

17 浏览
0 Comments

将一个派生表插入到新创建的表中。

我有两个表(Current和Prior),它们具有完全相同的列,并通过查询中的全外连接进行合并。我还有针对每个相应列的派生列,用于比较Current和Prior对应字段的值,并指示它们是否匹配。这样创建了一个派生表,它包含所有的Current和Prior字段以及一个派生的比较列。我需要在数据库中创建一个实际的表来存储这些数据。我该如何做?

0
0 Comments

在上述内容中,问题的出现是因为需要将一个派生表(derived table)插入到一个新创建的表中。解决方法是使用SQL语句创建一个视图(view)或表(table),然后使用INSERT INTO语句将派生表的数据插入到新表中。

如果想要创建一个视图,可以使用以下代码:

CREATE VIEW [dbo].[vw_Compare]
AS
SELECT /* 列名列表 */
    IIF(A.Col1 IS NULL, 1, 0) AS [CompareCol1],
    IIF(A.Col2 IS NULL, 1, 0) AS [CompareCol2]
FROM A
FULL OUTER JOIN C
    ON A.Col1 = C.Col1

如果希望创建一个表,可以使用以下代码:

CREATE TABLE [dbo].[Compare]
(
    [CompareCol1] BIT,
    [CompareCol2] BIT,
    /* 在这里插入列1到N */
)
INSERT INTO [dbo].[Compare]
(
    [CompareCol1],
    [CompareCol2],
    /* 列名列表 */
)
SELECT IIF(A.Col1 IS NULL, 1, 0) AS [CompareCol1],
    IIF(A.Col2 IS NULL, 1, 0) AS [CompareCol2],
    /* 列名列表 */
FROM A
FULL OUTER JOIN C
    ON A.Col1 = C.Col1

通过使用上述代码,可以创建一个视图或表,并将派生表的数据插入到新创建的表中。这样就解决了将派生表插入到新表的问题。

0