我想把省份全都替换成区域,这样写有什么问题嘛

2040.jpg

用户K0035705 发布于 2020-11-20 15:21
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
鱼仔仔家的荣荣Lv4初级互助
发布于2020-11-20 15:27(编辑于 2020-11-20 15:34)

不应该写在select后面吗

SELECT PROVINCE,PNCSUM,

( CASE 

WHEN PROVINCE IN ('北京','天津','河北','山西','内蒙古','辽宁','吉林','黑龙江') THEN '华北'

WHEN PROVINCE IN ('上海','安徽','江苏','浙江','江西','山东') THEN '华东'

END

) AS 地区

FROM DBO.ONCONTRACT 


最佳回答
0
luojian0323Lv7资深互助
发布于2020-11-20 15:22

where

()=1

这是什么语法?

最佳回答
0
shirokoLv6资深互助
发布于2020-11-20 15:23

没有else

  • 用户K0035705 用户K0035705(提问者) 不是那个问题
    2020-11-20 15:25 
  • shiroko shiroko 回复 用户K0035705(提问者) 那你这个永远不会等1啊,还判断啥。。
    2020-11-20 15:27 
  • 用户K0035705 用户K0035705(提问者) 回复 shiroko 我想把各个省份值都换成华北华中那样的值
    2020-11-20 15:30 
  • shiroko shiroko 回复 用户K0035705(提问者) 那你应该写到select 的字段中,新加一个字段,用casewhen生成。。
    2020-11-20 15:33 
  • luojian0323 luojian0323 回复 用户K0035705(提问者) 把你的case when 写到新增字段中.不要写在where 条件中
    2020-11-20 15:38 
最佳回答
0
tyne.xuLv3见习互助
发布于2020-11-20 15:40

把你where里面的东西写到select里面,把=1去掉就行了

案例:

with b as (
select 1 as a from dual
union all
select 2 as a from dual
union all
select 3 as a from dual
)
select case when a =1 then 'A' when a = 2 then 'B' else null end 
from b
select case when province in ('....') then '华北'
	    when province in ('....') then '华东'
       else null end as province
from dbo.oncontract


  • 5关注人数
  • 402浏览人数
  • 最后回答于:2020-11-20 15:40
    请选择关闭问题的原因
    确定 取消
    返回顶部