如何在oracle中有条件地插入数据?

How to insert data conditionally in oracle?

我有 table t1。我想根据另一个 tables t2、t3 等

的查询结果将数据插入此 table

我是这样做的-

Insert into table_t1 (column1,column2,column3,column4)
Select col1, col2, Have_to_check_condition_here_and_then_insert_value, Have_to_check_condition_here_and_then_insert_value from table_t2
where condition;

我面临的问题是如何将来自 table_t3 和 table_t4 的值放入 column3 和 column4 中,这也是有条件的,这意味着如果某些事情是真的,那么我会把value_something 否则 value_another_thing。 Table 第三个和第四个与特定列上的第二个 table 相连。

根据您发布的信息,应该是这样的:

INSERT INTO table_t1 (col1,
                      col2,
                      col3,
                      col4)
   SELECT b.col1,
          c.col2,
          CASE
             WHEN b.amount > 1000 THEN c.one_value
             ELSE c.some_other_value
          END AS col3,
          --
          CASE
             WHEN c.TYPE = 'A' THEN b.some_column
             WHEN c.TYPE IN ('B', 'C') THEN c.another_column
             ELSE NULL
          END AS col4
   FROM   table_t3 b JOIN table_t4 c ON b.id = c.id