MySQLの - そして、1次元テーブルを持つ文は、2次元のテーブルになり...文で、ケースの場合


      データベースの詳細については、~~注意ヨーヨーを追加してください。:ブロガーのための接触ガボール主な民間の手紙またはお問い合わせください
      QQ:3327908431
      マイクロ手紙:ZDSL1542334210を

        はじめに:虎などの操作が激しいのMySQLのシリーズ、コード、明確で理解しやすい、シンプルな構造は、その時々我々は裁判官に必要な、あなたはif文を使用する必要があります。MySQLの内部では、その後...、ある裁判官への道は、そこにあります。勝つための具体的な例。**

1、if文の構文

        裁判官は、不確実なデータ型である文、数値またはテキストのいずれかのタイプを判断できる場合には、プログラミングの様々な関与することになることは間違いないが、あるブール、trueまたはfalseを返します。だから、MySQLは例外ではない、とその具体的な構文は次のとおりです。

select <内容> if(<条件1>,<满足1>,if(<条件2>,<满足2>,if(<条件3>,<满足3>,....))) from <表名>;

2、ケース... then文と文法

        もちろん、私たちが見ることができ、その後、文とif文は次のようにしている、と彼らは、特定の構文の詳細を決定することができます...場合は、次のとおりです。

select <内容>,case 
when <条件1> then <满足1>
when <条件2> then <满足2>....
else <满足n>
end from <表名>;

図3に示すように、一次元の表では、2次元テーブルとなります

        一次元、二次元テーブルへのクエリの結果に、我々はここで見つける複数のリネームの使用が法である、それがして、グループと組み合わせる必要があり、具体的な例を参照して、最後の2つの例は、説明少し抽象的、私なりそれは明確にすることができます。カブスは私の鏡を持って、私はああ...まったく厄介な毛がありません参照してください!グッド!いいえ混乱、我々は継続しません...

図4に示すように、テーブルを作成します

テストテーブルテックスを作成します。

create table tex(
s_id varchar(6),c_id varchar(6),score int);

insert into tex values
("0001","01",67),
("0001","02",99),
("0002","02",88),
("0003","03",100);

学生スコアリング形のスコアを作成します。

create table scores (s_id varchar(5),
    c_id varchar(3),score float);
    
insert into scores values 
("001","01",135),
("005","01",120),
("003","01",110),
("002","01",90),
("005","02",140),
("001","02",125.5),
("004","02",100),
("006","02",90),
("002","03",102),
("005","03",100.6),
("001","03",100),
("003","03",95.6),
("004","03",83),
("003","02",80),
("006","03",79.5);

5、セクションのタイトル

トピック1:if文での評価(120,100,90に応じた分類)をスコアに
「評価は」評価スケールの名前が変更されることを意味します。

select *,
if(score >=120,"优秀",
if(score >=100,"良好",
if(score>=90,"及格","不及格")))等级 
  from scores;
# 答案
001	01	135	优秀
005	01	120	优秀
003	01	110	良好
002	01	90	及格
005	02	140	优秀
...

トピック2:ケースと、その後の評価(120,100,90に従って分類)を得点

select *,
case
when score >=120 then "优秀"
when score >=100 then "良好"
when score >=90 then "及格"
else "不及格"
end 等级
from scores;
# 答案
001	01	135	优秀
005	01	120	优秀
003	01	110	良好
002	01	90	及格
005	02	140	优秀
...

トピック3:女性、男性およびその他の変更について001002003生徒の性別の変更など[if文]

select *, if (s_id in(001,002,003),'女','男')new_sex from stu;
# 答案
001	李华	男	23	1996-8-16002	王二	男	24	1997-3-16003	赵敏	女	23	1990-5-26004	张莹莹	女	22	1995-2-16005	朱亚军	男	25	1999-8-16006	马云	男	28	1993-12-16007	走走走	男	105	1996-8-16

トピック4:[とき...その後]に女性、男性とその他の修正のための001002003生徒の性別の変更

select *, 
case 
when s_id in(001,002,003) then '女' 
else '男' 
end new_sex 
from stu;

トピック5:男性と女性の数90件の問い合わせ、風景の要件

select sum(s_sex="男"),sum(s_sex="女")from
     stu where year(s_bothday)>=1990;
# 答案
男   女
 5	 2

トピック6:2次元テーブルテックスにテスト形式

select s_id ,
sum((c_id=01)*score)'01',
sum((c_id=02)*score)'02',
sum((c_id=03)*score)'03'
from tex
  group by s_id;
# 答案:
s_id    01  02  03
0001	67	99	0
0002	0	88	0
0003	0	0	100

        ここで、インデックスは、すべて「01」が加算され、原稿台上の単一の行合計を記録するような「01」のような条件を満足和満たしていない求め、それぞれについて、列に加算されます学生はこのコースを選択しなかったビットは、値が0であればレコードは、それがない場合は、結果は1つのレコードだけである場合は、別のことで、グループを使用する必要があり、一部のみです。基づいて、私たちの目標以上を達成しました。

トピック7:2次元テーブルにスコア

select s_id,
sum((c_id=01)*score) "01",
sum((c_id=02)*score) "02",
sum((c_id=03)*score) "03"
from scores 
  group by s_id;
# 答案
s_id 01  02   03
001	135	125.5	100
002	90	0	102
003	110	80	95.5999984741211
004	0	100	83
005	120	140	100.5999984741211
006	0	90	79.5

6、紙の卵の終わり - 簡単な瞬間

        私たちは皆、私は時々彼のガールフレンドに遊んで、彼は前のカードをプレイするのが好きウィニーという名前の友人を持っているが忘れてしまったことを知って、彼と私たちはカードをプレイするには、この時間明るい兄弟は急いで来て、クマに言ったら、「あなたが持っています!!思考カードマイルキスあなたの妻とあなたの親友が「ウィニーは彼のカードを入れてすぐに、聞いて激怒したと明るい弟を与えたが、言った:」!私はあなたが最初に私の「オーバーのためのいくつかを打つ表示されますしばらくは、戻ってきた、と明るい兄弟を軽蔑するために言った:私はその男を知らない、あなたは私がプレー開くカンニングしようとしている、「すべての日の大騒ぎあなたのTMを行い、私はより良い彼らは他の高速な実行、または私は人々のカブスは今結婚しているしたいので」!イニングがありません、確かに花嫁の男のガールフレンドの妻にキスです。

       MySQLの知識についてもっと学ぶためにリラックスした瞬間のよ〜利息 - 今日はヨーヨー//各記事の最後の卵を持って、ここで終了します!見ていただきありがとうございます、私はJetuserデータでした

リンク:[https://blog.csdn.net/L1542334210]
CSND:L1542334210
ここに画像を挿入説明
私はあなたのすべての成功を祈って!家族で楽しみます!

公開された29元の記事 ウォン称賛53 ビュー30000 +

おすすめ

転載: blog.csdn.net/L1542334210/article/details/102160797
おすすめ