SQL进阶知识点总结

本文深入探讨了SQL中的CASE表达式,包括两种表达式形式及其在解决行列转化、数据更新和约束条件中的应用。接着讲解了自连接的运用,如实现排列组合、查找局部不一致和排序。最后,讨论了三值逻辑和NULL的处理,强调了NULL在比较操作中的特殊性和在使用IN、EXISTS时的注意事项。
摘要由CSDN通过智能技术生成

一、CASE表达式(类似DECODE,IF)

1、两种表达式
--简单case表达式
case sex
	when '1' then '男'
	when '2'then '女'
	else '其它' end
--搜索case表达式
case 
	when sex='1'then '男'
	when sex='1'then '女'
	else '其它' end

注意事项:

  1. 各分支条件返回的数据类型必须一致;
  2. 不要忘记写end;
  3. 养成写else子句的习惯;
2、解决场景如下:
  • 行列转化:将group by计算出来的一维表进行行列转换,变成类似数据透视图的二维表;
  • 已有数据重新更新:用case的时候只执行一次,防止了用两次update的时候第一次被更新的值用在了第二次的语句中,重复更新发生错误;
  • 与约束的结合:check是对列值输入的时候加了限制,在使用check加限制的时候结合case when可以结合其他的列进行限制,更加灵活;
  • 表之间的数据匹配:不同的表匹配涉及到(in,exists的用法)
  • 针对聚合结果的条件分支:在case中可以使用聚合函数,在聚合函数中也可以使用case表达式
  • 特别说明:新手用where、having子句进行分支ÿ
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值