根据列location_old的值在列locaion_new中输入记录

问题描述 投票:-1回答:1

即,当location_old ='r-0000'时,则location_new ='r-0280',否则对于location_old的任何其他值,location_new的对应值应相同。

select year, month, amount, account, location_old, costcentre_old, costcentre_new,
       'location_new'= case when location_old='r-0000' then 'r-0280'
                            else 'loation_old'
                       end
from asign3;
sql
1个回答
1
投票

从标识符中删除单引号。它们只应用于字符串文字。除非您使用的是SQL Server,否则别名列的语法是<expression> [AS] <alias>而不是<alias> = <expression>。但是,由于SQL Server也理解后者,我建议无论如何都要使用后者。

SELECT year,
       month,
       amount,
       account,
       location_old,
       costcentre_old,
       costcentre_new,
       CASE
         WHEN location_old = 'r-0000' THEN
           'r-0280'
         ELSE
           location_old
       END location_new
       FROM asign3;
© www.soinside.com 2019 - 2024. All rights reserved.