Sql开发技巧

原文:Sql开发技巧

简介

本文主要介绍下述几个技巧:

  • 使用Row_Number分页
  • 事务
  • 根据条件刷选记录的技巧

分页

主要是使用了Row_Number()这个函数。一般如下:

declare @PageSize int;
declare @StartIndex int;

with MyTable_Paged as(
    select
        Row_Number() over(order by col_1) as ‘‘,
        *
    from
        MyTalbe
    where
        condition
)
select * from MyTable_Paged

where RowNumber between StartIndex and [email protected]

事务

这个在复杂的sql语句中经常用,尤其配合存储过程。能够使一个操作原子化,防止只执行部分的操作。(当一个存在过程在执行的时候,是一条一条语句执行的,当出现错误的时候回停止执行,但是如果前面已经执行了一些语句,那么没有事务机制的话,该执行不能够回滚。)

begin try
    begin tran
        sqlstatement
    commit tran
end try
begin catch
    rollback tran
end catch

根据条件刷选记录

这个技巧在于当某一个条件可用可不用的情况下,不必使用众多的if等条件选择语句
比如需要筛选的条件如下:Name,Phone,Email

select * from MyTalbe where
    ([Name][email protected] or @Name is null)
and
    ([email protected] or @Phone is null)
and
    ([email protected] or @Email is null)
时间: 2024-10-18 08:15:08

Sql开发技巧的相关文章

SQL开发技巧(二)

本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上…… 文章系列目录 SQL开发技巧(一) SQL开发技巧(二) 本文内容简介 这篇文章主要介绍以下内容: 快速查询表的总记录数 非递归查询树形结构表的所有子节点 清除查询缓存 编程中构建Where语句的小技巧 如何进行跨服务器的数据库查询 快速查询表的总记录数 什么,你还在用select count(*) from xxx?难道没有园友告诉你用se

SQL开发技巧(二) 【转】感觉他写的很好

本文转自: http://www.cnblogs.com/marvin/p/DevelopSQLSkill_2.html 本系列文章旨在收集在开发过程中遇到的一些常用的SQL语句,然后整理归档,本系列文章基于SQLServer系列,且版本为SQLServer2005及以上…… 文章系列目录 SQL开发技巧(一) SQL开发技巧(二) 本文内容简介 这篇文章主要介绍以下内容: 快速查询表的总记录数 非递归查询树形结构表的所有子节点 清除查询缓存 编程中构建Where语句的小技巧 如何进行跨服务器的

sql开发技巧总结-1

1.数据库分类 关系型 非关系型 2.sql语句分类 sql: ddl数据库定义语言  tpl事物处理语言 dcl数据控制语言  dml数据操作语言(insert delete update select) 增加数据库处理效率 减少相应时间 减少数据库服务器负载 增加服务器稳定性 减少服务器间通讯网络流量 3.join语句 inner(内连接) --inner join 内连接inner join基于连接谓词将两张表(如A和B)的列组合在一起,产生新的结果表 select <select_lis

sql开发技巧总结-2

---恢复内容开始--- 1.如何进行行列转换 需求: 列转换成行 select a.`user_name`,sum(b.kills) from user1 a join user_kills b on a.id = b.user_id group by a.user_name; -行转换成列 select sum(case when user_name='wukong' then kills end) as 'wukong', sum(case when user_name='zhubajie

SQL开发技巧:开发技巧

一.行列转换 基本思路: 1. 将数据转转为标书数据,如图所示 2. 使用笛卡尔积做行列转换 select sum(case when childr='餐饮' then money end ) as '餐饮' , sum(case when childr='通讯' then money end ) as '通讯' , sum(case when childr='娱乐' then money end ) as '娱乐' from (select childr, convert(sum(money)

SQL优化技巧

我们开发的大部分软件,其基本业务流程都是:采集数据→将数据存储到数据库中→根据业务需求查询相应数据→对数据进行处理→传给前台展示.对整个流程进行分析,可以发现软件大部分的操作时间消耗都花在了数据库相关的IO操作上.所以对我们的SQL语句进行优化,可以提高软件的响应性能,带来更好的用户体验. 在开始介绍SQL优化技巧之前,先推介一款数据库管理神器Navicat,官网:https://www.navicat.com.cn/whatisnavicat Navicat是一套快速.可靠和全面的数据库管理工

delphi XE5下安卓开发技巧

delphi XE5下安卓开发技巧 一.手机快捷方式显示中文名称 project->options->Version Info-label(改成需要显示的中文名即可),但是需要安装到安卓手机才可以(IOS的没有试过) 二.使用Sqllite存储中文 SqlLite中,字段类型要设置为nvarchar,保存时,有两种方式1)用Post时,对中文的字段要进行UTF8转换先用一个string变量转换一下(不转换的话Win32编译没有问题,Android编译时出错)str_temp:=UTF8ENCO

MySQL 开发技巧(一)

一.SQL语句分类 DDL 数据定义语言 TPL  事务处理语言 DCL  数据控制语言 DML  数据操作语言 SELECT INSERT UPDATE DELETE 二.正确使用SQL的重要性 增加数据库处理效率,减少应用的相应时间 减少数据库服务负载,增加服务器稳定性 减少服务器间通讯的网络流量 三.开发技巧 如何正确使用Join从句 1.join从句---内连接 SQL语句代码: 2.join从句---左外连接 SQL语句代码: 3.join从句---右外连接 SQL语句代码: 4.jo

thinkphp开发技巧经验分享

thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同时还有一些开发中碰到的问题的解决方案下面我们一起来看看吧. 一,常用的系统变量 (1)系统变量:在模板中输出系统变量:包括server.env.session.post.get.request.cookie {$Think.server.script_name} // 输出$_SERVER变量 {$