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

时间: 2024-08-24 07:07:13

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

分享一个自控小技巧--小任务--简单却十分的有效

场景,话不多说 记不记得自己想做某件事情,比如每天锻炼,但是时常难以开始? 记不记得自己本来计划好的某段时间用来做某件事情,但是一不小心就沉浸于游戏或者电视剧忘了自拔? 记不记得自己计划好的每天晚上花一小时学习某项技能,但是坚持了三天就抛到脑后难以记起了? 我来分享一个关于自控的小技巧,对别人有没有效果我不知道,反正对多年来想要自控多一些的我反正发生了奇效! 技巧就是设定小任务 这个技巧十分的简单,易于执行.就是 设定几个特变简单的.但是每天都要做的小任务. 比如,如果你想要背单词:可以试试设定

一些有用的小技巧/小公式/玄学优化(雾

1.在(x1,y1) (x2,y2)两点构成的线段(不含端点)上有gcd(x1-x2,y1-y2)-1个整点. 2.两个longlong相乘后%一个数可以以下述方法避免高精度 ll mu(ll a,ll b){ ll r=0; for(;b;a=(a<<1)%m,b>>=1)if(b&1)r=(r+a)%m; return r; } 3.$\sum\limits_{i=1}^n i^2=\frac{n(n+1)(n+2)}{6}$ 4.函数前面加inline有时会有时间优化

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?id=17876   2. 在vs2013里安装 SQL Server Compact & SQLite Toolbox 3.   sql server 小技巧 集锦

iOS 知识-常用小技巧大杂烩

iOS 知识-常用小技巧大杂烩 1,打印View所有子视图 po [[self view]recursiveDescription] 2,layoutSubviews调用的调用时机 * 当视图第一次显示的时候会被调用 * 当这个视图显示到屏幕上了,点击按钮 * 添加子视图也会调用这个方法 * 当本视图的大小发生改变的时候是会调用的 * 当子视图的frame发生改变的时候是会调用的 * 当删除子视图的时候是会调用的 3,NSString过滤特殊字符 // 定义一个特殊字符的集合 NSCharact

SQL SERVER 小技巧

SQL SERVER 小技巧(不用exec实现in()的功能) declare @x varchar(20) SET @x='1,2,3' SELECT @x select * from data0001 where charindex(','+ltrim(rkey)+',',','[email protected]+',')>0 --====================== SQL SERVER 小技巧(多行数据转字符串a,b,c...的写法) declare @Colstr varcha

前端知识:12个非常实用的JavaScript小技巧

在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用!!variable做检测,只要变量的值为:0.null." ".undefined或者NaN都将返回的是false,反之返回的是true.比如下面的示例: func

SQL Server 一些使用小技巧

原文:SQL Server 一些使用小技巧 1.查询的时候把某一个字段的值拼接成字符串 以下是演示数据. 第一种方式:使用自定义变量 DECLARE @Names NVARCHAR(128) SET @Names='' -- 需要先赋值为空字符串,不然结果会是 null SELECT @Names=@Names+S_Name+',' -- S_Name 类型为字符串类型,如果不能隐示转换,就需要强制转换 FROM Student SELECT @Names 这种方法有一个好处就是,拼接出来的字符

SQL拼接小技巧(一)

# SQL拼接小技巧(一) # 2018/6/21 18:54:36 ---------- **关键字:  SQL , 1 = 1 ,1 = 2** ---------- 如下代码中SQL拼接使用了1=1和1=2防止请求参数中条件为空或SQL注入的方式猜测表名,字段名 public DomainPage<RealNameVerifyInfo> getVerifyList(String vin, String name, String phoneNum, String status, Strin

学习逆向知识之用于游戏外挂的实现.第三讲,通过游戏外挂.分析红色警戒金钱基址.以及确定基址小技巧.

分析红色警戒金钱基址.以及确定基址小技巧. 一丶基址简介 通过第二讲.我们寻找植物大战僵尸无限阳光.学习到了相关的逆向知识.以及认识了基址.动态地址. 静态地址的区别.现在我们拿红色警戒这款单击游戏进行练手. PS: 主要目的是分析数据.学习逆向知识.并为之所用.并不是教大家如何制作外挂. 1.怎么确定我们寻找到的是基址? 有三种方法. CE中绿色表示基址,黑色表示内存地址.一般绿色的很有可能是基址(当然不一定是.不过大部分是) 退出游戏重新进入游戏.地址不会改变.其值的内容也不会改变. 搜索指