在具有对某一列的条件的情况下从另一个表中插入数据。

26 浏览
0 Comments

在具有对某一列的条件的情况下从另一个表中插入数据。

我正在尝试将我的提交表中的所有数据插入到事实表中。所有字段都对齐,除了状态列。状态表需要根据日期填充状态。我有所需的规则,但不确定应该把逻辑放在哪里,甚至不知道如何做。希望能得到帮助。

插入到dbo.FactSubmit
(
    项目键,
    来自SubKey的到期日期,
    发送到键,
    来自ArcKey的到期日期,
    接收日期键,
    [描述],
    状态
)
选择
    dp.ProjectKey,
    转换(int,Convert(varchar,s.Due_From_Sub,112)),
    转换(int,Convert(varchar,s.Sent_To,112)),
    转换(int,Convert(varchar,s.Due_From_Arc,112)),
    转换(int,Convert(varchar,s.ReceivedDate,112)),
    s.Item_Description
从stg.Submit s
内部连接dbo.DimProject dp
    在s.ProjectID = dp.ProjectID上
内部连接stg.Project sp
    在sp.ProjectID = dp.ProjectID上

0
0 Comments

将数据从一个表插入到另一个表中时,有时候我们需要根据某些条件来插入数据。这种情况下,我们可以使用where子句或者case语句来实现。

使用where子句的方法如下所示:

INSERT INTO table2 (f1, f2, etc)
SELECT f1, f2, etc
FROM table1
WHERE YOUR CONDITIONS ARE MET

在上面的语句中,我们可以在select语句的from子句中指定我们要插入数据的源表,然后在where子句中指定我们的条件。只有满足条件的数据才会被插入到table2表中。

另一种方法是使用case语句:

INSERT INTO table2 (f1, f2)
SELECT f1,
       CASE WHEN A CONDITION IS MET THEN VALUE1 ELSE VALUE2  END

在这个例子中,我们可以在select语句的字段列表中使用case语句。根据条件的满足与否,我们可以选择不同的值来插入到table2表中的相应字段。

如果需要,我们也可以同时使用where子句和case语句:

INSERT INTO table2 (f1, f2, etc)
SELECT f1, f2, etc
FROM table1
WHERE YOUR CONDITIONS ARE MET
AND CASE WHEN ANOTHER CONDITION IS MET THEN VALUE1 ELSE VALUE2  END

在这种情况下,我们可以同时使用where子句和case语句来筛选并插入满足条件的数据。

总之,当我们需要根据某些条件来插入数据时,可以使用where子句和case语句来实现。通过这样的方法,我们可以灵活地控制数据的插入行为。

0
0 Comments

问题的出现原因是用户想要从一个表中插入数据到另一个表中的特定列,并根据某个列的条件选择要插入的值。解决方法是使用"CASE"语句来处理选择逻辑,并确保所选的列匹配并能够插入到目标表中。

用户可以按照以下步骤进行操作:

1. 根据需要执行所需的选择操作,确保选择的列与目标表中的列匹配。

2. 使用"CASE"语句来处理选择逻辑,根据条件选择要插入的值。例如,在上述例子中,根据"SomeColumn"的不同值,选择不同的"Status"值进行插入。

3. 使用"INSERT INTO"语句将选择的结果插入到目标表中的特定列中。

以下是一个示例代码:

INSERT INTO TargetTable (Status)
SELECT CASE
         WHEN SomeColumn = 50 THEN 'Status1'
         WHEN SomeColumn = 51 THEN 'Status2'
         ELSE 'DefaultStatusValue'
       END
FROM SourceTable

用户还可以参考相关资源,如StackOverflow和MSDN上的文档,了解更多关于"CASE"语句和插入操作的详细信息。

通过以上步骤和示例代码,用户可以根据条件从一个表中选择并插入数据到另一个表的特定列中。这种方法可以帮助用户实现他们的需求,同时也提供了一种灵活和可扩展的方式来处理选择逻辑。

0