首先是case的写法,就是case when 条件1 then 值1 …… end


SELECT
    case
    when age < 25  or isnull(age) then '25岁以下'
    when age >= 25 then '25岁及以上'
    end age_cut,
    count(*) number
FROM  
    user_profile
GROUP BY
    age_cut;

然后就是if的写法,就是if(条件,‘为真则是此值’,‘为假则是此值’),相对于上边这个少了一个null值的判断,因为这是分为两类,所以就可以这样直接写另一类忽视判断


SELECT
    if (age >= 25, '25岁及以上','25岁以下') age_cut,
    count(*) number
FROM  
    user_profile
GROUP BY
    age_cut;