日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

case when mysql_mysql条件语句case when的实例

發布時間:2023/12/19 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 case when mysql_mysql条件语句case when的实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本節學習mysql中case when條件語句的一些實例。

1,表的創建

復制代碼 代碼示例:

CREATE TABLE `lee` (

`id` int(10) NOT NULL AUTO_INCREMENT,

`name` char(20) DEFAULT NULL,

`birthday` datetime DEFAULT NULL,

PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8

2,數據插入:

復制代碼 代碼示例:

insert into lee(name,birthday) values ('sam','1990-01-01');

insert into lee(name,birthday) values ('lee','1980-01-01');

insert into lee(name,birthday) values ('john','1985-01-01');

使用case when語句來實現,更簡單:

1,

復制代碼 代碼示例:

select name,

case

when birthday

when birthday>'1988' then 'yong'

else 'ok' END YORN

from lee;

2,

復制代碼 代碼示例:

select NAME,

case name

when 'sam' then 'yong'

when 'lee' then 'handsome'

else 'good' end

from lee;

當然了case when語句還可以復合。

3,

復制代碼 代碼示例:

select name,birthday,

case

when birthday>'1983' then 'yong'

when name='lee' then 'handsome'

else 'just so so ' end

from lee;

此處用sql語句進行日期比較的話,需要對年加引號。

否則結果可能和預期的結果會不同。

還可以用year函數實現,以第一個sql為例:

復制代碼 代碼示例:

select NAME,

CASE

when year(birthday)>1988 then 'yong'

when year(birthday)<1980 then 'old'

else 'ok' END

from lee;

create table penalties

(

paymentno INTEGER not NULL,

payment_date DATE not null,

amount DECIMAL(7,2) not null,

primary key(paymentno)

)

insert into penalties values(1,'2008-01-01',3.45);

insert into penalties values(2,'2009-01-01',50.45);

insert into penalties values(3,'2008-07-01',80.45);

1.#對罰款登記分為三類,第一類low,包括大于0小于等于40的罰款,第二類moderate大于40

#到80之間的罰款,第三類high包含所有大于80的罰款。

2.#統計出屬于low的罰款編號。

第一道題的解法與上面的相同

復制代碼 代碼示例:

select paymentno,amount,

case

when amount>0 and amount<=40 then 'low'

when amount>40 and amount<=80 then 'moderate'

when amount>80 then 'high'

else 'incorrect' end lvl

from `penalties`

2.#統計出屬于low的罰款編號。重點看這里的解決方法

方法1.

復制代碼 代碼示例:

select paymentno,amount

from `penalties`

where case

when amount>0 and? amount<=40 then 'low'

when amount>40 and amount<=80 then 'moderate'

when amount>80 then 'high'

else 'incorrect' end ='low';

方法2

復制代碼 代碼示例:

select *

from (select paymentno,amount,

case

when amount>0 and amount<=40 then 'low'

when amount>40 and amount<=80 then 'moderate'

when amount>80 then 'high'

else 'incorrect' end lvl

from `penalties`) as p

where p.lvl='low';

總結

以上是生活随笔為你收集整理的case when mysql_mysql条件语句case when的实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。