包含百分比和子查询的案例语句

时间:2013-06-04 02:02:25

标签: mysql if-statement subquery percentage case-when

您好我正在尝试完成以下操作:

从City表中选择Name,然后从country表中选择名称。我想创建一个计算字段'GNPOverPop'来计算GNP / City Population并将该字段格式化为6位小数。之后,我想创建另一个计算字段,确定以下内容:

如果城市的人口是:

  1. 大于或等于10%的国家/地区然后将“10%或更多”打印到计算的字段值

  2. 大于或等于5%的国家/地区然后将“5%或更多”打印到计算的字段值

  3. 大于或等于1%的国家/地区然后将“1%或更多”打印到计算的字段值

  4. 不在上述某个类别中,然后在计算的字段值中打印“小于1%”

  5. 现在我有以下查询我正在处理但是我遇到了试图找出IF / Case部分的障碍。

    Select City.Name, Country.Name, 
           Format(Country.GNP / City.Population,6) AS GNPOverPOP
    From City, Country
    Limit 200;
    

    值应如下所示:

    | Name       | Name           | GNPOverPop  | PopGNPDesc  |
    ___________________________________________________________
    | Charleston | United States  | 95.558200   | 10% or more |
    | Carson     | United States  | 95.530312   | 10% or more |
    | Odessa     | United States  | 95.312063   | 10% or more |
    | Elgin      | United States  | 95.189469   | 10% or more |
    | Kenosha    | United States  | 95.147965   | 10% or more |
    

    感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:1)

这适用于条件部分

SELECT ...
    (CASE WHEN GNPOverPOP >= 10 THEN "10% or more"
          WHEN GNPOverPOP >= 5 THEN "5% or more"
          WHEN GNPOverPOP >= 1 THEN "1% or more"
          ELSE "Less than 1%"
    END) AS PopGNPDesc
FROM ...