1. 程式人生 > 其它 >case when then end 的用法

case when then end 的用法

0、建立一張資料表 表名為test_when_case

CREATE TABLE `test_when_case` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0 = 幼兒園  1 = 一年級 2 = 二年級 3 = 三年級 4 = 四年級 5 = 五年級 6 = 六年級 7 = 七年級 8 = 八年級 9 = 九年級',
  `state` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0 = 等待稽核  1 = 稽核通過  2 = 未通過稽核',
  `instrDataTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `addDataTime` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE
=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8

1、新增5-10條的資料

INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (0,0,(select  concat_ws(' ',curdate(),curtime(),null)));
INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (1,1,(select  concat_ws(' ',curdate(),curtime(),null)));
INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (
2,2,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (3,0,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (4,1,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (
5,2,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (6,0,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (7,1,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (8,2,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (9,0,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (2,1,(select concat_ws(' ',curdate(),curtime(),null))); INSERT INTO test_when_case (`type`,`state`,`addDataTime`) values (5,2,(select concat_ws(' ',curdate(),curtime(),null)));

2、用case when then end 函式進行查詢 實現的效果是 type欄位 state欄位 的數字轉換成中文

SELECT
CASE type
WHEN '0' THEN
'幼兒園'
WHEN '1' THEN
'一年級'
WHEN '2' THEN
'二年級'
WHEN '3' THEN
'三年級'
WHEN '4' THEN
'四年級'
WHEN '5' THEN
'五年級'
WHEN '6' THEN
'六年級'
WHEN '7' THEN
'七年級'
WHEN '8' THEN
'八年級'
WHEN '9' THEN
'九年級'
END AS TYPE,
CASE state
WHEN '0' THEN
'待稽核'
WHEN '1' THEN
'稽核通過'
WHEN '2' THEN
'未通過稽核'
END AS STATE
FROM
test_when_case;

3、以上查詢語句返回圖