SQL语法学习(5)——子查询


核心思想:嵌套

子查询常规用法

SELECT * FROM (
SELECT 
SUBSTR(Product,9,2) AS asd,
SUBSTR(Product,LOCATE(' ',Product)+1,2) AS asf,
Product
Product FROM new_schema20200309.new_table) AS new_table_1

这里将里面一层SELECT作为一个临时生成的table,然后再对他进行SELECT。
注意:子查询一定要设置表别名,不然会报错

这里我们就可以使用子查询直接引用 asd 和 asf
在这里插入图片描述

CASE-WHEN-ELSE-END (类似于Python中的if else)

可以进行缩进(便于观察),也可以不缩进

SELECT 
	CASE
		WHEN (bottom + top)/2 <=10 THEN '0~10'
		WHEN (bottom + top)/2 <=20 THEN '10~20'
		WHEN (bottom + top)/2 <=30 THEN '20~30'
		ELSE '30+'
	END,
	salary FROM(
		SELECT
		LEFT(salary,LOCATE("k",salary)-1 as bottom,
		SUBSTR(salary,LOCATE("-",salary)+1,LENGTH(salary)-LOCATE("-",salary)-1) as top,
		salary FROM data.dataanalyst as t

结果

casesalary
10~208k-15k
10~2010k-18k
0~105k-11k
30+20k-50k
20~3015k-30k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值