常用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函数是取出本字段的最大值,也就是最后一个值。
·
人生只若初见................