ホームページ > データベース > mysql チュートリアル > mysqlのcase文の使い方は?

mysqlのcase文の使い方は?

藏色散人
リリース: 2020-09-15 10:05:45
オリジナル
6026 人が閲覧しました

MySQL は、スウェーデンの MySQL AB 社によって開発されたリレーショナル データベース管理システムであり、現在は Oracle の製品です。

mysqlのcase文の使い方は?

では、mysql case ステートメントを使用するにはどうすればよいでしょうか?

mysql case ステートメントの使用法:

構造: case when… then…end

1.

eg:

select OperatorAccount,
        case
     when CreateTime>'2016-02-14 16:24:42' then 'after'
         when CreateTime<&#39;2016-02-14 16:24:42&#39; then &#39;before&#39;
         else &#39;now&#39; end stage
from log_login order by CreateTime DESC
ログイン後にコピー
を判断しながら値を変更します。

mysqlのcase文の使い方は?

#2 番目の書き方

 SELECT CallerNumber, CASE IsLocal
         WHEN 0 THEN &#39;外线&#39;
          WHEN 1 THEN &#39;内线&#39; END
  FROM cdr
ログイン後にコピー

mysqlのcase文の使い方は?

2. 1 行を複数の列に分割します

例:

SELECT SipAccount, COUNT(1) AS number,IsCheck
  FROM cdr
  GROUP BY SipAccount,IsCheck
ログイン後にコピー

mysqlのcase文の使い方は?

この統計結果を分割します (0 はスコアなし、1 は優秀、2 は合格、3 は不合格を意味します)

最終結果は次のとおりです。

mysqlのcase文の使い方は?

したがって、最終的に行を 3 つの列に分割する必要があります。ステートメントは次のとおりです。

 SELECT SipAccount,
              (CASE IsCheck WHEN 1 THEN number END) youxiu,
              (CASE IsCheck WHEN 2 THEN number END) hege,
              (CASE IsCheck WHEN 3 THEN number END) buhege
 FROM
          (SELECT SipAccount, COUNT(1) AS number,IsCheck
           FROM cdr
           GROUP BY SipAccount,IsCheck) AS a
ログイン後にコピー

mysqlのcase文の使い方は?

結果は次のようになります。はい、3 つの列に分割されていますが、最終的な結果は必要なものではないことがわかります。次に、sipaccount に従ってグループ化し、結果を同時に処理する必要があります。ステートメントは次のとおりです。

 SELECT sipaccount,
        IF(MAX(youxiu) IS NULL,0, MAX(youxiu)) youxiu,
        IF(MAX(hege) IS NULL,0, MAX(hege)) hege,
        IF(MAX(buhege) IS NULL,0, MAX(buhege)) buhege
FROM
        (SELECT SipAccount,
        (CASE IsCheck WHEN 1 THEN number END) youxiu,
        (CASE IsCheck WHEN 2 THEN number END) hege,
        (CASE IsCheck WHEN 3 THEN number END) buhege
        FROM
     (SELECT SipAccount, COUNT(1) AS number,IsCheck  FROM cdr  GROUP BY SipAccount,IsCheck) AS a) AS b
                    GROUP BY sipaccount
ログイン後にコピー

mysqlのcase文の使い方は?##最終的にこの結果が得られました。まさに私たちが必要とするフォーマットです。

以上がmysqlのcase文の使い方は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート