在If语句中使用Concat

时间:2019-05-05 14:29:56

标签: mysql sql

我正在尝试在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上受阻。

有什么建议吗?

2 个答案:

答案 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
      )

这将根据情况放置两个,一个或两个前缀。