测试扩展(一)——SQL知识点[日常更新]
1、SQL的if语句
参考:https://www.cnblogs.com/xuhaojun/p/9141396.html
if表达式:if(exp1,exp2,exp3)----->如果exp1是true,则if()返回exp2,否则返回exp3
2、case when
case XXX when YY then '1' else '2' end ------->if(XXX=YY, '1','2')
若没有else,则当XXX不等于YY的时候,返回null
3、IFNULL(exp1,exp2)
加入exp1不为null,则返回exp1,否则返回exp2
4、cast
参考:https://blog.csdn.net/qq_21101587/article/details/78642423
语法:CAST (expression AS data_type)
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型
可以转换的类型是有限制的。这个类型可以是以下值其中的一个:
- 二进制,同带binary前缀的效果 : BINARY
- 字符型,可带参数 : CHAR()
- 日期 : DATE
- 时间: TIME
- 日期时间型 : DATETIME
- 浮点数 : DECIMAL
- 整数 : SIGNED
- 无符号整数 : UNSIGNED
*DECIMAL 用法
SELECT CAST('9.5' AS decimal(10,2)) :10为整数+小数的长度,2为小数的长度
5、OVER(PARTITION BY)
参考:https://www.cnblogs.com/lcngu/p/5335170.html
Oracle的函数、hive-SQL可用
开窗函数,Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。
6、row_number()
参考:https://www.cnblogs.com/liuzhenlei/p/8026278.html
和over(partition by)一起用,返回序号
7、HAVING
参考:https://www.cnblogs.com/starliang/p/8377040.html
用于对where和groupby 查询出来的分组进行过滤
8、group by
参考:https://blog.csdn.net/xx_star1204/article/details/72884983
多个字段 group by x,y 相同X字段值和Y字段值的记录放到一个分组里
Table: Subject_Selection Subject Semester Attendee --------------------------------- ITB001 1 John ITB001 1 Bob ITB001 1 Mickey ITB001 2 Jenny ITB001 2 James MKB114 1 John MKB114 1 Erica
SELECT Subject, Semester, Count(*) FROM Subject_Selection GROUP BY Subject, Semester
得到结果:
Subject Semester Count ------------------------------ ITB001 1 3 ITB001 2 2 MKB114 1 2

浙公网安备 33010602011771号