提问者:小点点

满足条件时更改列值


我有一个包含两列的视图:

column a     column b
aaa          One
bbb          Two
aaa r3       Three
aaa tr       Four
trr          One
uuu          One

我要做的是创建一个具有相同列数的新视图,但是当列a的值包含aaa时,列b的值将更改为1,bbb为2,其他值为初始值。

我试着用case语句来做这个,但是没有用。

SELECT
    CASE WHEN column a like '%aaa%'
         THEN column b = 'One'
    else column b

...
FROM table; 

谢谢。


共2个答案

匿名用户

SELECT
    CASE 
         WHEN a like '%aaa%' THEN 'One'
         ... etc. ...
         ELSE b
    END AS b
...
FROM table; 

匿名用户

您的语法错误,请尝试以下步骤:

SELECT columna,
       CASE 
         WHEN columna like '%aaa%' THEN 'One'
         WHEN columna like '%bbb%' THEN 'Two'
         ELSE columnb
       END columnb
FROM table;