MSSQL相关用法
一、分页查询
方式一(row_number):
SELECT TOP pageSize *
FROM (SELECT row_number() OVER (ORDER BY orderColumn) AS rownumber, * FROM [Table]) temptdb_row
WHERE rownumber > (page - 1)*pageSize;
Tips:
分页查询的时候,请不要用参数化方法,因为参数化方法会给参数加上引号,会给page,pagesize加上引号,导致查询出错,而且一个参数化的参数,不能再同一个dal函数里的多条语句里同时使用。
方式二(不推荐):
数据库中有100条数据,我要查第40-50数据,表中有两个字段,一个字段是id,一个字段是name,其中id是不连续的,因为我删除id为44、45的记录,因为我要查数据的第40-50条记录,也就是id分别为41、42、43、46、47、…52的十条记录。
SELECT TOP 10 *
FROM [Table]
WHERE id NOT IN (SELECT TOP 40 id FROM [table] ORDER BY id)
ORDER BY id;
(1)按照id排序之后先搜出前40条数据
(2)然后搜出id不在前40之内的其它数据
(3)最后再取出前10条数据,这就是数据库中第41-50条数据(注意,id不是41-50,因为我删除了id为44、45的记录)
二、排序
(1)对 1,2,3,10,11,12 等数字进行排序
SELECT *
FROM [systemTree]
WHERE parentCrtId='0' AND proCode = '425'
ORDER BY LEN(nodeName),nodeName
(2)对中文数字进行排序
三、查询重复的数据
select * from people where peopleId in (select peopleId from people group by peopleId having count(*) > 1);
select platform_id,count(*) from user_platfrom_unit where unit_type=1 group by platform_id having count(*)>10
COUNT
COUNT(*):求表中的行数
COUNT(列名称):求表中该列的行数,不包含null值
COUNT(DISTINCT 列名称):求表中该列去重后的个数
四、增加和删除前缀和后缀
update [TABLE] set [字段] = '前缀'+ [字段];
update [TABLE] set [字段] = replace([字段], '前缀', '');
--REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。
--或者substring
五、where 和 having 的区别
where 是一个约束声明,使用 where 约束来自数据库的数据,where 是在结果返回之前起作用的,where 中不能使用聚合函数。
having 是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在 having 中可以使用聚合函数。
在查询过程中聚合语句 (sum,min,max,avg,count) 要比 having 子句优先执行。
而 where 子句在查询过程中执行优先级高于聚合语句。
六、exists和in
https://www.cnblogs.com/clarke157/p/7912871.html
- in()适合B表比A表数据小的情况
- exists()适合B表比A表数据大的情况
当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用。
七、把数据从一个表插入到另外一个表中
insert into [Table1](proCode) (select proCode from [Table2] group by proCode);
八、union
https://blog.csdn.net/u010895119/article/details/80335983
select deptno,
count(1) 总人数,
count(case when job ='SALESMAN' then '1' end) 销售人数,
count(case when job ='MANAGER' then '1' end) 主管人数
from emp
group by deptno;--如果不group,会认为所有数据是一组,返回一个数据
最后 SQL优化
- 明知道只有一条查询结果是,请使用 LMIT 1 / TOP 1,避免全表扫描。
- 尽量避免使用select * ,它会全表扫描,不能有效利用索引,而且如果当该表增加了字段,解析查询结果时,可能会解析出错。
MSSQL相关用法的更多相关文章
- slf4j log4j logback关系详解和相关用法
slf4j log4j logback关系详解和相关用法 写java也有一段时间了,一直都有用slf4j log4j输出日志的习惯.但是始终都是抱着"拿来主义"的态度,复制粘贴下配 ...
- $.ajax等相关用法
下面是jquery一些方法的相关用法: $.ajax: $.ajax({ type: "GET", url: "url", data: {username:$( ...
- oradmin相关用法
[转]oradmin相关用法 创建例程: -NEW -SID sid | -SRVC 服务 [-INTPWD 口令] [-MAXUSERS 数量] [-STARTMODE a|m] [-PFILE 文 ...
- #ifdef预编译相关用法
#ifdef预编译相关用法主要有:(1)#ifdef XXX executing the corresponding xxx code #endif(2)#ifdef XXX executing th ...
- Java中Date各种相关用法
Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set ...
- Js相关用法个人总结
Js相关用法个人总结 js中将数组元素添加到对象中var obj = {}; var pushArr = [11,22,33,44,55,66]; for(var i=0;i<pushArr. ...
- Css相关用法个人总结
Css相关用法个人总结
- 关于Unity中的刚体和碰撞器的相关用法(二)
在关于Unity中的刚体和碰撞器的相关用法(一)的基础上 有一个plane平面,一个ball球体,都挂了碰撞器,ball挂了刚体Rigidbody,写了一个脚本ball挂载在球体上,球体从空中落下装机 ...
- STL中的Vector相关用法
STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int> ...
随机推荐
- [python]pip坏了怎么办?
今天,给一位新同事配置pip,用get-pip.py安装之后.出现错误: raise DistributionNotFound(req) # XXX put more info here pkg_r ...
- POJ2485 Highways 【MST】
Highways Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22842 Accepted: 10525 Descri ...
- [UOJ#334][NOIP2017]列队 平衡树/线段树/树状数组
题目链接 题意不说了,一辈子也忘不掉 解法1.平衡树 这题就是平衡树裸题,每一行开一棵维护前 \(m-1\) 个,最后一列单独维护,因为很多人没有用到,所以平衡树每个节点是一个区间(pair),分裂时 ...
- legend---六、php脚本变量的生命周期是怎样的
legend---六.php脚本变量的生命周期是怎样的 一.总结 一句话总结:应该是脚本结束变量的生命周期就完了 1.外部js找不到元素是怎么回事? 1 function myDailyTaskFin ...
- POJ 3271 BFS (大坑)
被某人拉进了坑 完完全全被坑一天的题-- 题意: 正解思路: 先把每一个点搜一遍 预处理出它能在一步之内到的所有点 并连边 然后用一个类似DP的东西把方案数加起来就搞定了 (其实 也不是很难) 但是 ...
- rem的解决方案
http://www.qdfuns.com/notes/32967/37b8f127797c6c2b66f2c1dc6d133e45.html rem 作为一个低调的长度单位,由于手机端网页的兴起,在 ...
- css3 背景过度实现
代码: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&q ...
- AIX 系统补丁升级步骤
AIX 系统补丁升级步骤 1.升级之前建议备份 rootvg (推荐) # smit mksysb 2.检查系统版本号 # oslevel -r 3.找到补丁光盘或者下载补丁,上传到服务器 ...
- Annotation中Result的params属性
这个属性只有在重定向时有用,而转发时不会设置参数. 如: @Results({ @Result(name="success", location="page", ...
- Spring : 征服数据库(一)
严格的说.这里征服的是关系型数据库.之后笔者会以MongoDB为例,给出非关系型数据库的解决方式,敬请期待. 获取连接,操作,关闭,不知所云的异常...是的,你受够了.在使用纯JDBC时你訪问数据库时 ...