在SQL中使用case

时间:2015-06-30 16:21:44

标签: sql

我正在尝试使用customername,city

从客户表中检索记录
custname|city
Anand|London
Paul|Rome
    .
    .
    .
然而,当重建时,如果城市是伦敦,则布鲁塞尔应显示在其位置,否则将显示原始城市名称。 我在查询'

之后尝试过你
select custname,case city when 'London' then 'Brussels' end from customer;

select custname,deocde(city,'London','Brussels') from customer;

两者都将结果表示为:

custname|city
Anand|Brussels
Pau|

其他城市没有显示。如何正确编写此查询。请帮助我。提前谢谢

3 个答案:

答案 0 :(得分:2)

您应该使用ELSE

select custname, case  
                    when city = 'London' then 'Brussels' 
                    else city 
                 end as city
from customer;

答案 1 :(得分:2)

使用else子句:

select custname,
       (case city when 'London' then 'Brussels'
                  else city
        end) as city
from customer;

答案 2 :(得分:0)

Decode有一个“else”子句。通常的格式是DECODE(column, search1, replace1[, search2, replace2][, default])

例如:DECODE(city, 'London', 'Brussels', city)

https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm