1、
CASE WHEN
1.1、
CASE WHEN
语法
casewhen 条件表达式
then 条件成立,结果1else 条件不成立,结果2end
1.2、单个条件
1.2.1、**
CASE WHEN … THEN … END
**结构
如果不写ELSE,那么除了符合WHEN** **条件之外的数据,其他数据默认为NULL
spark-sql>select> user_id,> name,>casewhen address='shanghai'then'上海'endas address
>from test.test8;1 xiaoming 上海
2 xiaolan NULLTime taken: 0.219 seconds, Fetched 2row(s)
1.2.2、**
case when…then…else…end
**结构
spark-sql>select> user_id,> name,>casewhen address='shanghai'then'上海'else'其他'endas address
>from test.test8;1 xiaoming 上海
2 xiaolan 其他
Time taken: 0.396 seconds, Fetched 2row(s)
1.3、多个条件
1.3.1、**
CASE WHEN … THEN … WHEN … THEN … ELSE END
**结构
spark-sql>select> user_id,> name,>casewhen address='shanghai'then'上海'>when address='beijing'then'北京'>else'其他'>endas address
>from test.test8;1 xiaoming 上海
2 xiaolan 北京
Time taken: 4.57 seconds, Fetched 2row(s)
1.3.2、CASE WHEN嵌套结构
case when…then…case when…then…else…end when…then…case when…then…else…end else…end
结构:
spark-sql>select> user_id,> name,>case>when name='xiaoming'>then>casewhen address='shanghai'then'上海'else'其他'end>when name='xiaolan'>then>casewhen address='beijing'then'北京'else'其他'end>else'其他'endas address
>from test.test8;1 xiaoming 上海
2 xiaolan 北京
3 xiaohong 其他
Time taken: 1.072 seconds, Fetched 3row(s)
2、
IF
语法
2.1、
IF
语法
if(条件表达式,条件成立-结果1,条件不成立-结果2)
2.2、单个条件
if(条件,结果1,结果2)结构:
spark-sql>select> user_id,> name,> address,>if(address='shanghai','上海','其他')as address_name
>from test.test8;1 xiaoming shanghai 上海
2 xiaolan beijing 其他
3 xiaohong guangzhou 其他
Time taken: 11.957 seconds, Fetched 3row(s)
2.3、多个条件
2.3.1、
IF
嵌套结构
if(if(条件, 结果1, 结果2), 结果1, 结果2)
spark-sql>select> user_id,> name,> address,>if(name='xiaoming',if(address='shanghai','上海','其他'),'其他')as address_name
>from test.test8;1 xiaoming shanghai 上海
2 xiaolan beijing 其他
3 xiaohong guangzhou 其他
Time taken: 5.452 seconds, Fetched 3row(s)
2.3.2、
IF
和
CASE WHEN
混合使用
if(条件, case when…then…end, 结果2)结构
spark-sql>select> user_id,> name,> address,>if(name='xiaoming',>casewhen address='shanghai'then'上海'else'其他'end,>'其他')as address_name
>from test.test8;1 xiaoming shanghai 上海
2 xiaolan beijing 其他
3 xiaohong guangzhou 其他
Time taken: 12.791 seconds, Fetched 3row(s)
本文转载自: https://blog.csdn.net/xdx_dili/article/details/133136553
版权归原作者 静惘 所有, 如有侵权,请联系我们删除。
版权归原作者 静惘 所有, 如有侵权,请联系我们删除。