常用SQL

Select查询语句按以下顺序处理:

1.FROM
2.WHERE
3.GROUP BY
4.HAVING//含有 HAVING COUNT(*)>1 即保留多个数量的
5.SELECT
6.ORDER BY

 书写顺序却是:

1.SELECT
2.FROM
3.WHERE
4.GROUP BY
5.HAVING
6.ORDER BY

 AS

SELECT name as othername

as 可以给列名取别名 是在查询完之后取别名

Having

HAVing COUNT(*)>1 包含数量大于1的

ASC 升序(默认) DESC降序 

DISTINCT删除重复行

TOP取前面的记录

例如

SELECT DISTINCT  ID FROM DBO.TEST

SELECT TOP(10) ID FROM DBO.TEST

OVER提供了所有行的计算,但是只有在SELECT和ORDER BY处理阶段才允许使用。OVER可以理解为窗口。->开窗函数

GROUP BY 和OVER

聚合函数GROUP BY提供分组,分组只能返回一个值

OVER可以进行特定的运算,可以返回基础的列和聚合的列。ROW_NUMBER 给每行添加行号

聚合函数和排名函数都支持OVER 子句

例如

SELECT ID,VAL(订单价格)

SUM(VAL) OVER() AS TOTALVALUE, 对所有行

SUM(VAL) OVER(PARTITION BY ID) AS VALUE  对相同ID行计算SUM(VAL) 分区与不分区的区别  PARTITION BY用来分区(类似分组计算)

FROM DBO.TEST;

谓词

IN 检查一个值是否与一组元素中的至少一个相等。

WHERE  ID IN (1001,1002,1003);

BETWEEN 检查在两个指定边界值之间

WHERE ID BETWEEN 1000 AND 1010;

Like模糊查询包含

WHERE NAME LIKE '%海';//%任意长度字符串

WHERE NAME LIKE '%_E';//_下划线代表任意单个字符

AND 或者OR 组合多个逻辑表达式

WHERE ID>'5' AND TOOLID IN (4441,88,444);

优先级 括号>AND>OR

SQL同样有substring函数  SUBSTRING(string,start,length)

LEFT(string ,n)  RIGHT(string ,n)  LEN(string)长度

原文地址:https://www.cnblogs.com/cdjbolg/p/11759322.html