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> ...
随机推荐
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
题目大意: 思路:基尔霍夫矩阵求生成树个数,不会. 可是能够暴力打表.(我才不会说我调试force调试了20分钟... CODE(force.cc): #include <cstdio> ...
- 三星N900(note3)刷机包 颓废N0.8.1 修复已知BUG 集成谷歌服务
ROM介绍 8.1更新信息:攻克了来电后点击HOME出现SECPHONE已经停止的问题 去掉了桌面隐藏信息的选项,官方最新底包暂不支持这功能 增加了网友们须要验证的谷歌服务(不须要的同学同步什么的都关 ...
- (2) 我的结果- spec2006中精确的simulation points运行点
spec06中获取simpoints的环境说明: spec的版本号为spec2006v1.0; 使用ref input with runspec; 100millions为周期生成的simpoints ...
- java调用com组件将office文件转换成pdf
在非常多企业级应用中都涉及到将office图片转换成pdf进行保存或者公布的场景,由于pdf格式的文档方便进行加密和权限控制(类似于百度文库).总结起来眼下将office文件转换 成pdf的方法主要有 ...
- leetcode第一刷_Text Justification
这个题的接受率好低,搞得我一直不敢做.后来认真的看了一下题目,不是非常难嘛.字符串的题目ac率就是低,除了难,还由于它的測试用例太多. 思路不难,主要是由于特殊情况太多.纯模拟,我把全部的情况罗列一下 ...
- Aix下查看内存命令
1. 查看物理内存配置 # lsdev -Cc memory 查看配置的物理内存设备,下面为其输出示例: L2cache0 Available L2 Cache mem0 Available ...
- python多线程理解
在发送网络请求的过程中,单个请求的速度总是有着很大的限制,而任务往往需要以更快的速度去执行,这时多线程就是一个很好地选择.python已经给我们封装好了多线程库thread和threading. th ...
- 23种JavaScript设计模式
原文链接:https://boostlog.io/@sonuton/23-javascript-design-patterns-5adb006847018500491f3f7f 转自: https:/ ...
- 三种new
http://www.cnblogs.com/zhuyf87/archive/2013/03/23/2976714.html 第一种是正常的new,它是语言内建的,不能重载. new operator ...
- Python 查找Twitter中特定话题中最流行的10个转发Tweet
CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-4 @author: guaguastd @name: fi ...