首页 > 技术文章 > Mysql-通过case..when实现oracle decode()函数进行多值多结果判断

hwaggLee 原文

oracle的decode函数使用:http://www.cnblogs.com/hwaggLee/p/5335967.html

case ..when 函数使用:http://www.cnblogs.com/hwaggLee/p/5336097.html

mysql解决方案

select 
 CASE 
     WHEN 字段名称 IS NULL THEN '未知' 
     WHEN 字段名称 = '004-001'  THEN '前端' 
     ELSE '后端' 
 END AS '字段显示名称'from fb_log l ;

举例1:

使用该查询,得出iFavoriteID,iFavUserType ,cUser,iArticleID,dFavoriteTime五个字段的值:

SELECT iFavoriteID,
CASE WHEN iFavUserType = 0 THEN '新闻管理员'
WHEN iFavUserType = 1 THEN '商家'
WHEN iFavUserType = 2 THEN '会员'
WHEN iFavUserType = 3 THEN '未注册'
WHEN iFavUserType = 4 then '匿名'
END AS iFavUserType, cUser, iArticleID,
CONVERT(nvarchar(100), dFavoriteTime, 111) AS dFavoriteTime FROM dig_favorite

举例2:

SELECT CASE WHEN `MEMBERTYPE` =1
THEN '参赛队员'
ELSE '指导老师'
END FROM `tab_sign_member`
WHERE 1

推荐阅读