测试扩展(一)——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,不能使用用户定义的数据类型

可以转换的类型是有限制的。这个类型可以是以下值其中的一个

  1. 二进制,同带binary前缀的效果 : BINARY    
  2. 字符型,可带参数 : CHAR()     
  3. 日期 : DATE     
  4. 时间: TIME     
  5. 日期时间型 : DATETIME     
  6. 浮点数 : DECIMAL      
  7. 整数 : SIGNED     
  8. 无符号整数 : 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

 

posted @ 2019-01-28 10:37  june13  阅读(183)  评论(0)    收藏  举报