一、準備資料
create
database iftest;
use iftest;
create
table test(
id int
primary
key auto_increment,
typeid int
notnull comment '產品型別:1-普通商品 2-禮品卡 3-非賣品',
productname varchar(50) not
null comment '產品名稱'
);insert
into test(typeid,productname) values(1,'可樂');
insert
into test(typeid,productname) values(1,'西瓜');
insert
into test(typeid,productname) values(1,'檸檬');
insert
into test(typeid,productname) values(2,'100元禮品卡');
insert
into test(typeid,productname) values(2,'200元禮品卡');
insert
into test(typeid,productname) values(3,'航空紀念品');
二、case when方案
select
case
when [條件1] then [執行1]
when [條件2] then [執行2]
else [條件3]
end
from tablename;
select
case
when typeid=1
then
'普通商品'
when typeid=2
then
'普通商品'
else
'非賣品'
endas typename,
count(1) as productnum
from test
group
by typeid;
三、if方案
select if(condition,trueresult,falseresult);
select
sum(if(typeid=1,1,0)) as
'普通商品',
sum(if(typeid=2,1,0)) as
'禮品卡',
sum(if(typeid=3,1,0)) as
'非賣品'
from test;
四、總計
if和case when方式,各有各的優勢,if可湊成橫向結構,case when可以湊成縱向的結構。
流程控制語句Mysql
流程控制語句 1.順序控制語句 begin.end.delimiter create function max1 i int,j int returns int begin return select from student where 學號 xh end delimiter 2.分支控制語句 i...
Python流程控制語句流程控制語句
流程控制語句1 if語句 if 語句基本用法 if 表示式 語句塊其中,表示式可以是乙個單純的布林值或變數,也可以是比較表示式或邏輯表示式,如果表示式為真,則執行 語句塊 如果表示式的值為假,就跳 過 語句塊 繼續執行後面的語句。2 if else語句 if else 語句基本用法 if 表示式 語...
Mysql之流程控制語句
這篇部落格主要是總結一下mysq中的流程控制語句的用法,主要是 case,if,ifnull,nullif 1.case case value when compare value then result when compare value then result else result end ...