【问题标题】:Duplicate a record based on a condition根据条件复制记录
【发布时间】:2021-09-01 11:22:19
【问题描述】:

我想为每个 user_id 复制 step4step3 的记录。 我怎样才能做到这一点?

这是预期的结果:

这里是示例数据:

WITH t1 AS (
SELECT 'A' AS interim_id, NULL AS user_id, 'step1' AS step UNION ALL
SELECT 'A' AS interim_id, NULL AS user_id, 'step2' AS step UNION ALL
SELECT 'A' AS interim_id, NULL AS user_id, 'step3' AS step UNION ALL
SELECT NULL AS interim_id, 'B' AS user_id, 'step4' AS step )

【问题讨论】:

    标签: sql postgresql duplicates sql-insert


    【解决方案1】:

    你可以使用union all:

    select interim_id, user_id, step
    from t1
    select interim_id, user_id, 'step3'
    from t1
    where step = 'step4';
    

    如果要换表,那么:

    insert into t1 (interim_id, user_id, step)
        select interim_id, user_id, 'step3'
        from t1
        where step = 'step4';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 2020-11-02
      • 1970-01-01
      相关资源
      最近更新 更多