我的查询抛出错误
“ =”附近的语法不正确。
请告诉我我在哪里做错了。
case
when proj.country_name = 'UK'
then proj.region = 'NE'
when proj.Country_Name = 'Belgium' or proj.Country_Name = 'Germany' or proj.Country_Name = 'Netherlands'
then proj.region = 'CE'
when proj.Country_Name = 'Spain' or proj.Country_Name = 'France' or proj.Country_Name = 'Italy'
then proj.region = 'SE'
else proj.region
end as Region_NCC,
谢谢
答案 0 :(得分:4)
无效的语法case
表达式不返回具有列名的值:
case when proj.country_name = 'UK' then 'NE'
when proj.Country_Name in ('Belgium', 'Germany', 'Netherlands') then 'CE'
when proj.Country_Name in ('Spain','France', 'Italy') then 'SE'
else proj.region
end as Region_NCC
我使用了IN
子句,而不是奇怪的OR
子句。
答案 1 :(得分:0)
在结构化时就是这种情况
CASE expression
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
对于您而言,您在then
子句中确实犯了错误,那仅仅是then
'NE'
所以完整的条件会在下面
case when proj.country_name = 'UK' then 'NE'
when proj.Country_Name = 'Belgium'
or proj.Country_Name = 'Germany'
or proj.Country_Name = 'Netherlands'
then 'CE'
when proj.Country_Name = 'Spain'
or proj.Country_Name = 'France'
or proj.Country_Name = 'Italy'
then 'SE'
else proj.region
end as Region_NCC