sql - 如何使用 SQL 将具有不同选择条件的多列插入到另一个表中

标签 sql sql-server-2008

我有两个表ForecastBackupForecastTotal 我想从 ForecasTotal 表中选择 4 列并插入到 ForecastBackup

例如 预测总计

UCPVol  UCPVal  IBNSINAVol  IBNSINAVal
1         1      NULL        NULL
2         3      NULL        NULL
NULL     NULL    1            4
NULL     NULL    3            5
NULL     NULL    1            6

我想插入ForecastBackup非空值 我的意思是结果应该是

UCPVol  UCPVal  IBNSINAVol  IBNSINAVal
    1         1      1            4
    2         3      3            5
    NULL     NULL    1            6

我使用了这个 SQL 命令,但不起作用

    INSERT INTO
    ForecastBackup (UCPVol,UCPVal,IBNSINAVol,IBNSINAVal)
    SELECT (select UCPVol,UCPVal from ForecastTotal where UCPVol is not null),
    (select IBNSINAVol,IBNSINAVal from ForecastTotal where IBNSINAVal is not null)
 from ForecastTotal

这可能吗?

最佳答案

根据您的输入和输出,我认为您需要此查询

INSERT INTO ForecastBackup (UCPVol,UCPVal, IBNSINAVol, IBNSINAVal) 
    SELECT
        A.UCPVol, A.UCPVal, B.IBNSINAVol, B.IBNSINAVal  
    FROM 
        ForecastTotal A
    LEFT JOIN
        ForecastTotal B ON A.UCPVal = B.IBNSINAVol

关于sql - 如何使用 SQL 将具有不同选择条件的多列插入到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630805/

相关文章:

mysql - 如何从表中获取未在另一个表中提及的行

sql - 是否可以重写 NOT IN 查询以使用索引?

sql - PostgreSQL 的时间戳差异(以小时为单位)

sql - 使用 SQL 将逗号分隔的字符串表行拆分为单独的行

c# - 事务必须在 SQL Server 的存储过程中吗?

sql - 如何在Hibernate的import.sql中将表达式分成更多行?

mysql - SQL 和 VBScript : How to store an SQL query column (USER_FIRSTNAME) into a VBScript variable?

java - java可以处理由MS SQL Server RAISEERROR命令引起的异常吗?

sql - 如何在单个 SELECT 语句中拥有多个公用表表达式?

c# - 如何将 100 行插入到只有标识列的单个表中?