MySQL之CASE...WHEN...THEN
有时我们需要用查询出来的数值替换成特定的文本
语法:
CASE column_name
WHEN value1 THEN 'show_text1'
WHEN value2 THEN 'show_text2'
ELSE 'default_text'
END
例1:
将性别为用男,女显示,1代表男,2代表女
用到的表和数据:
CREATE TABLE tb_users(
user_id INT NOT NULL AUTO_INCREMENT,
user_name VARCHAR(20) NOT NULL,
user_age INT NOT NULL DEFAULT 18,
user_gender CHAR NULL,
PRIMARY KEY (user_id)
) CHARSET=utf8 ;
INSERT INTO tb_users (user_name, user_gender) VALUES ('张三', 1), ('李四', 1), ('王五', 0), ('赵六', NULL) ;
查询语句:
SELECT
user_id,
user_name,
user_age,
CASE
user_gender
WHEN 1 THEN
'男'
WHEN 0 THEN
'女' ELSE '未知'
END
FROM
tb_users;
运行结果:
原本值是1、0和null,通过case…when…then…end语句替换成了男、女和未知