case when then else语句使用
已知员工表emp表结构及数据如下
查询员工姓名和姓名中是否含有字母A的信息
- 如果字符A在姓名的首位,则显示’字符A在首位’
- 如果字符A在姓名的末位,则显示’字符A在末位’
- 如果字符A在姓名中不存在,则显示’没有字符A’
- 其他情况显示’字符A在中间’
mysql
SELECT ename,
case LOCATE('A',ename)
when 1 THEN '字母A在首位'
when CHAR_LENGTH(ename) THEN '字母A在末位'
when 0 THEN '没有字母A'
else '字母A在中间'
END '名称类别'
FROM emp
查询结果
Postgresql
SELECT ename,
case position('A' in ename)
when 1 THEN '字母A在首位'
when length(ename) THEN '字母A在末位'
when 0 THEN '没有字母A'
else '字母A在中间'
END 名称类别
FROM emp