更改集更新中的列

时间:2018-01-25 08:39:24

标签: sql oracle

我可以在Set Column中使用case语句吗?我有多个列需要更新但声明非常相似。唯一的区别是我选择的是什么。

  SELECT LISTAGG(COLUMN1 , ', ') WITHIN GROUP (ORDER BY COLUMN1) AS COLUMN1 , 
     LISTAGG(COLUMN2 , ', ') WITHIN GROUP (ORDER BY COLUMN2) AS COLUMN1
    FROM (SELECT COLUMN1 , COLUMN2  FROM TABLE2 B
    WHERE A.COLUMN3 =  B.COLUMN3
    GROUP BY COLUMN1 , COLUMN2);


COLUMN1    COLUMN2 
EGG        PIE
EGG        BREAD  

我想将column2更新为Column1而不重复相同的代码块。

注意:我使用的是LISTAGG

有没有什么方法可以区分两个列而不试图在一个查询中将它分开创建一个子查询

我使用此查询并且我知道listagg不具备明显的功能,除非您在使用listagg之前先将其区分开来

COLUMN1    COLUMN2
EGG         PIE; BREAD

预期输出

MypageView.axml

1 个答案:

答案 0 :(得分:1)

你的意思是

UPDATE table1
SET (column1, column2 ...) = (SELECT col1, col2 ...)