• SQL小技巧小知识


    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代码。

  • 相关阅读:
    UVa 116 单向TSP(多段图最短路)
    POJ 1328 Radar Installation(贪心)
    POJ 1260 Pearls
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    UVa 1620 懒惰的苏珊(逆序数)
    POJ 1018 Communication System(DP)
    UVa 1347 旅行
    UVa 437 巴比伦塔
    UVa 1025 城市里的间谍
  • 原文地址:https://www.cnblogs.com/eric-qin/p/4225400.html
Copyright © 2020-2023  润新知