sql语句中case when和as用法

在sql语句里case when then else end可以当做c语言中switch case一样是分支语句,起到不同条件处理作用。而as相当于一个别名,可以给某个列或者某个表起新的名字。

比如这里有个employee表,

select * from employee;
+----+--------+-----+---------+
| id | name   | age | dept_id |
+----+--------+-----+---------+
|  1 | 张伟   |  30 |       1 |
|  2 | 刘红   |  20 |       3 |
|  3 | 刘明智 |  33 |       5 |
|  4 | 陈静   |  44 |       2 |
|  6 | 刘凤飞 |  59 |       4 |
|  7 | andy   |  38 |       1 |
|  8 | baby   |  38 |       6 |
| 11 | 李刚   |  48 |       3 |
| 14 | 小明   |  55 |       5 |
| 16 | 王晨键 |  35 |       6 |
+----+--------+-----+---------+
10 rows in set

select id as 编号,name as 姓名,case when age>50 then '该退休了' when age>30 then '大龄' else '年轻' end as 年龄 from employee;
+------+--------+----------+
| 编号 | 姓名   | 年龄     |
+------+--------+----------+
|    7 | andy   | 大龄     |
|    8 | baby   | 大龄     |
|    6 | 刘凤飞 | 该退休了 |
|    3 | 刘明智 | 大龄     |
|    2 | 刘红   | 年轻     |
|   14 | 小明   | 该退休了 |
|    1 | 张伟   | 年轻     |
|   11 | 李刚   | 大龄     |
|   16 | 王晨键 | 大龄     |
|    4 | 陈静   | 大龄     |
+------+--------+----------+
10 rows in set

看到了吧,这样就把表里id命名为编号,name命名为姓名,age命名为年龄,而age里根据不同的字段值,又分别赋值。

as还可以用到新表复制,比如:create table test as select * from table1

这时候就会create 一个table test,他是完全copy 表table1里的全部数据。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值