sql >> データベース >  >> RDS >> Mysql

MySQL-CASEで複数のWHEN条件を組み合わせる

    これはどうですか?

    SELECT  CASE 
              WHEN org.size IN (0, 1) THEN '<26'
              WHEN org.size = 2 THEN '26-50'
              WHEN org.size = 3 THEN '51-100'
              WHEN org.size = 4 THEN '101-250'
              WHEN org.size = 5 THEN '251-500'
              WHEN org.size = 6 THEN '501-1000'
              WHEN org.size = 7 THEN '1001-5000'
            ELSE '5000+' END AS Size, ....
    

    問題は、レコードをorg.sizeでグループ化していることです。 <26を引き起こします 元々は0であるため、2つの異なるグループで および1

    これでうまくいきます

    GROUP BY CASE 
              WHEN org.size IN (0, 1) THEN '<26'
              WHEN org.size = 2 THEN '26-50'
              WHEN org.size = 3 THEN '51-100'
              WHEN org.size = 4 THEN '101-250'
              WHEN org.size = 5 THEN '251-500'
              WHEN org.size = 6 THEN '501-1000'
              WHEN org.size = 7 THEN '1001-5000'
            ELSE '5000+' END
    



    1. MSSQLServerでスタックしたプロセスの自動削除

    2. PHPを使用してmysqlデータベースに.sqlファイルをインポートするにはどうすればよいですか?

    3. ユーザー入力に依存する長いクエリに対してPHPでMySQLエラーを表示するにはどうすればよいですか?

    4. PostgreSQLのロードバランサーの比較