1.[ ]的使用

  当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * from user info就要报错,需要写成:select * from [user] 和 select * from [user info],不过千万不要因为有[]的帮助,就随意起名了,那是自找麻烦,不过我确实看到有人把用户表起名为user的。

2.NULLIF函数

  NULLIF(Expression1,Expression2):给定两个参数Expression1和Expression2,如果两个参数相等,则返回NULL;否则就返回第一个参数。

  等价于:Case WHEN Expression1=Expression2 Then NULL ELSE Expression1。

  例如Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1。

  有一个实际的应用,例如防止除0操作的放生,可以使用a/NULLIF(b,0),这样就不怕b是0了,当然除0操作也可以通过别的方式判断。

3.NULL

  NULL是个神奇的东西,表示空值,未知值,任何数与它加减乘除都返回NULL。

4.ISNULL函数

  ISNULL(Expression1,Expression2):给定两个参数Expression1和Expression2,如果Expression1是NULL,那么返回Expression2,否则返回Expression1。

  等价于:Case WHEN Expression1 is NULL Then Expression2 ELSE Expression1。

  例如Select ISNULL(NULL,1)返回1,Select ISNULL(1,2)返回1。

  有一个实际的应用,可以对空值进行默认值替代,例如SELECT ISNULL(email,'没有填写email') from table1,所有email为null的,用'没有填写email'来替代。

 5.COALESCE函数

  COALESCE(Expression1,Expression2,Expression3,......):接受一系列的表达式或列,返回第一个非空的值。

例如SELECT COALESCE(NULL,NULL,4,NULL,NULL,5),那么返回4,如果里面的参数都为NULL,那么会报错。

6.WITH TIES

  与top()和order by 一起用,可以返回多于top的行。防止丢失想要的信息。

如果按照order by 参数排序TOP n(PERCENT)返回了前面n(pencent)个记录,

但是n+1…n+k条记录和排序后的第n条记录的参数值(order by 后面的参数)相同,

则n+1、…、n+k也返回。n+1、…、n+k就是额外的返回值

  例如:有个表table1

(1)select * from table1 order by name desc :结果如下:

(2)select top(3) * from table1 order by name desc:结果如下:(只有三条)

(3)select top(3) with ties * from table1 order by name desc:结果如下:

7.ORDER BY NEWID():返回随机排序结果。

8.BETWEEN a AND b:返回大于等于a,小于等于b的结果。如果a>b,那么返回NULL。

9.不要在where条件中使用函数,会强制每一行都计算该函数,无法使用索引查找。

  例如:select * from table1 where id+3>5和select * from table1 where id>5-3,后者效率比前者高。

10.许多以_desc结尾的列,是为了更友好的表示一个列的含义。

  例如:SELECT * FROM sys.databases

11.推荐一个小插件,SQL Prompt,配合Microsoft SQL Server Management Studio,使用起来非常方便,同时再加上以下几个快捷键:

  (1)ctrl+5或F5,运行代码,如果想运行特定的语句,那么只是选中该语句,然后F5或ctrl+E即可。

  (2)ctrl+L:显示执行计划。

  (3)ctrl+R:显示隐藏下面的结果窗口,增大自己书写sql的空间。

  (4)ctrl+K,然后按Y,格式化SQL代码。

SQL小技巧小知识的更多相关文章

  1. python小技巧 小知识

    python小技巧 小知识 python系统变量(修改调用shell命令路径)或用户空间说明 20150418 python调用系统命令,报找不到.怎么办? 类似执行shell的: [ -f /etc ...

  2. rails项目编写中的一些小技巧小心得

    1. 如果form中有数据要传回服务器可以用隐藏属性的控件: form_for(xxx) do |f| f.hidden_field :xxx,value:xxx end 2. 如果你需要一些信息放在 ...

  3. C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?

    C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...

  4. sql server小技巧-自动添加时间与主键自增长

    在敲机房收费系统的时候,遇到添加时间的时候总是通过vb端调用当前时间再添到sql server中,期间还有时因为添加时间格式的不统一导致一些小问题,现在才知道原来是自己孤陋寡闻,sql server ...

  5. mysql操作sql的小技巧

    本篇集中整理一下执行sql的小技巧,这种方式不仅带来了操作上的便捷,也可以保证数据可以数据的安全性. 1:查询数据(保证查询性能) 首先想先解释一下 SELECT * 和 SELECT t.id , ...

  6. Mysql编写sql语句的小技巧

    1.查询数据(保证查询性能) SELECT * 和 SELECT t.id , t.name:后者性能其实总体优于前者. 2.在查询的时候最好给表起个 别名,方便找到表中要查询的字段.执行sql的进行 ...

  7. (小技巧)Sql server查看sql语句的执行时间(转)

    转自CSDN: 在写数据库sql的时候,我们往往很关心该sql语句的执行效率,如下小技巧可以帮助程序员简单快速的得到某条或某几条sql的执行时间. declare @d datetime set @d ...

  8. sql server 小技巧(8) visual studio 2013里使用Sql server compact 4.0及发布问题处理

    1. 安装 Microsoft SQL Server Compact 4.0  https://www.microsoft.com/zh-cn/download/confirmation.aspx?i ...

  9. sql server 小技巧(2) 删除sql server中重复的数据

    with list_numbers as ( select Name, AuthorOrTime, Url, Price, EstimatePrice, Size, Category, ROW_NUM ...

随机推荐

  1. inline-block 和 float 的区别

    1.float元素会自动成为一个块元素. 2.float元素,会脱离文档流!   默认脱离文档流的元素的z-index值是比没有脱离文档流的元素高的! 3.float:没有上下哦,  上下用margi ...

  2. Xamarin.Forms——WebView技术研究

    在Xamarin中有一些Forms原生不太好实现的内容可以考虑使用HTML.Javascript.CSS那一套前端技术来实现,使用WebView来承载显示本地或网络上的HTML文件.不像OpenUri ...

  3. The first gui program by Qt

    #include<QApplication> #include<QPushButton> int main(int argc, char **argv) {     QAppl ...

  4. Spring-涉及到的设计模式汇总

    1. 简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. ...

  5. codeforces 375D:Tree and Queries

    Description You have a rooted tree consisting of n vertices. Each vertex of the tree has some color. ...

  6. Redis 集合操作

    1.SCARD key 返回集合 key 的基数(集合中元素的数量). 2.SDIFFSTORE destination key [key ...] 这个命令的作用和  类似,但它将结果保存到 des ...

  7. Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试

    现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...

  8. tmux下的滚屏

    先Ctrl+b进入tmux的操作模式,然后用PageUp和PageDown,

  9. ci默认控制器

    默认控制器 前面提到,如果在请求中没有指明具体的控制器,CI将会把页面重定向到一个系统默认的页面.这个默认页面可以自己设定,它存放在如下地址:/system/application/config/ro ...

  10. Protocol Buffer技术详解(C++实例)

    Protocol Buffer技术详解(C++实例) 这篇Blog仍然是以Google的官方文档为主线,代码实例则完全取自于我们正在开发的一个Demo项目,通过前一段时间的尝试,感觉这种结合的方式比较 ...