我正在尝试在SQL查询中将两个if语句连接在一起,但是我似乎不太幸运。
这两个语句是:
if(c.population > 100000000, Concat("Large ", c.GovernmentForm), c.GovernmentForm)
和:
if(YEAR(now())-c.IndepYear > 50, Concat("Modern ", c.GovernmentForm, c.GovernmentForm)
这两个IF语句彼此独立工作,但是我需要将它们组合为一个(例如,输出为“ Modern Large”和GovernmentForm,在输出的单独列中)。我可以将其作为函数或过程来使用,但是它们似乎在我们使用的MySQL上受阻。
有什么建议吗?
答案 0 :(得分:4)
您可以使用..结束
的情况case when c.population > 100000000 AND YEAR(now())-c.IndepYear > 50
then Concat("Large Modern ", c.GovernmentForm), c.GovernmentForm)
end ,
case when c.population > 100000000
then Concat("Large ", c.GovernmentForm), c.GovernmentForm),
End
case when YEAR(now())-c.IndepYear > 50
then Concat("Modern ", c.GovernmentForm, c.GovernmentForm)
End
答案 1 :(得分:4)
将条件逻辑放入 concat()
函数中
concat( (case when c.population > 100000000 then 'Large ' else '' end),
(case when YEAR(now()) - c.IndepYear > 50 then 'Modern ' else '' end),
c.GovernmentForm
)
这将根据情况放置两个,一个或两个前缀。