常用MS SQL Server语句

常用MS SQL Server语句

 

Sql根据某一字段排序并取出第一个值

根据字段1排rownum ,根据字段2排大小

SELECT *  FROM
 (Select *,
     row_number()  over ( partition by 字段1  order by 字段2 desc ) as rownum
  From 表) info
WHERE info.rownum = 1

  

 

关于sql中的distinct和top合用
   如果想要在去重后选出的数据中选出前三条,则应该将distinct写在top的前面,例如  

SELECT DISTINCT TOP 3 USERNAME,PASSWORD FROM USERS WHERE SEX=''

 

group by 与 where, having以及顺序

1. GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前. HAVING语句必须在ORDER BY子句之后。(where先执行,再groupby分组;groupby先分组,having在执行。)

 

 

 

2. 除聚集计算语句外,SELECT语句中的每个列都必须在GROUP BY子句中给出。

    

 

 

count()为聚集函数,vend_id在后面groupby中有,所以select后面有。

select vend_id, count(*) , sales from products group by vend_id;

这个语句,其中sales字段,在group by中没有,所以查询的结果,sales的值是错误的!!!(切记)

 

如果想用分组后的,sales的字段,可以采用left join的方式,相当于两个表匹配的方式,查询:(原始表B)

select vend_id, sales from B left join (select vend_id, count(*) nums, min(sales) sales from products group by vend_id) as A on B.vend_id = A.vend_id WHERE.......

 

3. 语句顺序

 

 

 

 

 

获取表中某字段的最小值和最大值

select max(id),min(id) from tablename ;
--注释:min函数是取出本字段的最小值,也就是第一个值,max函数是取出本字段的最大值,也就是最后一个值。

 

 

 

 

 

 

 

 

 

·

 

posted @ 2022-07-27 18:58  亟待!  阅读(27)  评论(0编辑  收藏  举报
……