国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

詳解Mysql case then使用

2024-07-24 13:08:39
字體:
供稿:網(wǎng)友
mysql case then在程序開發(fā)中經(jīng)常用到,通過本文給大家介紹mysql case then使用相關(guān)知識,對mysql case then相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
 

表的創(chuàng)建

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

數(shù)據(jù)插入:

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');

第一種用法:

SELECT name, CASE WHEN birthday < '1981' THEN 'old' WHEN birthday > '1988' THEN 'yong' ELSE 'ok' END YORNFROM lee

第二種用法:

SELECT NAME, CASE name WHEN 'sam' THEN 'yong' WHEN 'lee' THEN 'handsome' ELSE 'good' END as oldnameFROM lee

第三種:當(dāng)然了,case when 語句還可以復(fù)合

select name, birthday, case when birthday > '1983' then 'yong' when name='lee' then 'handsome' else 'just so so' endfrom lee;

在這里用sql語句進(jìn)行日期比較的話,需要對年加引號,要不然可能結(jié)果和預(yù)期的結(jié)果不同, 
當(dāng)然也可以用year函數(shù)來實現(xiàn)

select name, case when year(birthday) > 1988 then 'yong' when year(birthday) < 1980 then 'old' else 'ok' ENDfrom 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);

第一題:對罰款登記分為三類,第一類low,包括大于0小于等于40的罰款,第二類moderate大于40到80之間的罰款,第三類high包含所有大于80的罰款

select payment_date, amount, case when amount >= 0 AND amount < 40 then 'low' when amount >=40 AND amount < 80 then 'moderate' when amount >=80 then 'high' else 'null' ENDFROM penalties

第二題:統(tǒng)計出屬于low的罰款編號

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 pwhere p.lvl = 'low'

PS:Mysql,Case When,Case多個字段

select distinct a.PatientID,a.PatientCode,a.PatientSex,a.MobileNo,a.HomePhoneNo,a.UserAge,a.PatientName,a.PatientIDCard, DATE_FORMAT(a.RegistDate,'%Y-%m-%d') as RegistDate,  case when b.usedstartTime is not null and b.UsedEndTime is null then '1'when b.usedstartTime is not null and b.UsedEndTime is not null then '2'  end as 'usedState' from mets_v_patient_baseinfo a  left join mets_devices_used_history b on a.patientid = b.PatientID where  (select ifnull(IsDeleted,0) from userpublic_info where UserID = a.PatientID ) = 0  and 1=1  order by PatientID Desc limit 0,15 


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 龙门县| 平潭县| 察隅县| 禄丰县| 磐石市| 集安市| 呼玛县| 南丰县| 泰兴市| 容城县| 怀仁县| 新兴县| 神池县| 济宁市| 敦煌市| 常州市| 西华县| 边坝县| 宿松县| 安庆市| 周宁县| 闵行区| 响水县| 焉耆| 建瓯市| 遂平县| 上杭县| 西和县| 滕州市| 扎囊县| 抚松县| 勃利县| 盐源县| 上蔡县| 乡宁县| 洪泽县| 江源县| 镇沅| 娱乐| 惠水县| 昌乐县|