【问题标题】:Insert from one table to another and replace the values从一个表插入到另一个表并替换值
【发布时间】:2018-11-25 15:45:11
【问题描述】:

所以有两个表 Table1 和 Table2。请参考随附的截图 以参考Table1 结构和值。请注意,第 5 行具有所有 NULL 值。

我试图从 Table1 中获取值(仅当它不为 NULL 时),将这些值替换为硬编码值“Override”并将它们插入到表 2 中。

所以理想情况下,Table2 应该看起来像屏幕截图

附上。请注意,没有插入第 5 行,因为它具有所有 NULL 值。

我已经编写了下面的查询,但无论值是什么,它都会为两列插入硬编码值,并且表格看起来像屏幕截图

附上。查询及协助请参考下文。

INSERT INTO Table2 (Row_Number, ValueA, ValueB)
SELECT Row_Number, ValueA= 'Override', ValueB= 'Override' FROM Table A
WHERE A.ValueA is not null
or ValueB is not null ;

【问题讨论】:

    标签: sql sql-insert


    【解决方案1】:

    您可以使用case 表达式:

    INSERT INTO Table2 (Row_Number, ValueA, ValueB)
        SELECT Row_Number, 
               (case when ValueA is not null then 'Override' end) as ValueA, 
               (case when ValueB is not null then 'Override' end) as ValueB
        FROM Table A
        WHERE A.ValueA is not null or ValueB is not null;
    

    【讨论】:

      【解决方案2】:

      尝试以下方法:

      INSERT 
      INTO        Table_2
                  (Row_Number,ValueA, ValueB)
      SELECT      Row_Number,
                  CASE
                  WHEN A.valueA IS NOT NULL THEN
                      'Override'
                  END AS ValueA, 
                  CASE
                  WHEN A.ValueB IS NOT NULL THEN
                      'Override'
                  END AS ValueB
      FROM        Table_1 A
      WHERE       A.ValueA IS NOT NULL
              OR  A.ValueB IS NOT NULL
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多