最近要接触sql server的存储过程啦,在处理更加复杂的逻辑过程前,就来看一下这些sql的基础语法,感觉看啦一些复杂一点的sql语句,突然发现我是有多么的薄弱啊,所以在一些基础的语法上面我再重新整理一些吧,下面就来认识几点吧。
一. sql server中如何理解:isnull(a,0) 和 isnull(a,0)<>0 的区别以及select into的用法
select top 2 name into #A from student where isnull(id,0)=0 and id like'a%'
<1>.首先说一下在这里的select语句中使用的into吧,这里我们经常遇到的情况是select 表字段 from 表名字,但是这里在from前面添加了一个into,其实这里就是把查询出来的表字段以及内容添加到一个新的表中;
<2>.再来说一下前面的 isnull(参数1,参数2) 判断参数1 是否为NULL,如果是 返回参数2 否则返回参数1;而在这里碰到的情况就是:isnull(列名,0) : isnull()函数是用来判断列名是否为null 如果为NUll 则返回0 否则 返回列名的值;而<>:是不等号 与!= 一样 比如: select 3 where 1<>2 查出来的结果是3 select 3 where 1<>1则查不出结果;isnull(列名,0)<>0: 先判断 列名是否为null ,然后再与0比较 等于零返回结果为True 否则为False.
二. sql server中 case when用法
update NAME set a.ID=case b.BID when 10 then 1 else 2 end from STUDENT a join #C c on a.id = c.CID
这里看到这个就知道啦吧,其实就是判断一下的,分情况。之前的我并没有接触很多的这个,看到时间并没有搞明白要干嘛,但是我知道case是一个方法,嘿嘿。这就是sql server的奇妙啊。
三. insert语句和select语句的混合使用
insert into Register select ID,'abc',USERNAME,PWD,cast(MDPWD as varchar(50)) from STUDENT;
在这里就是在已经存在的Register 表中插入后面select出来的信息,但是从insert语句中我们知道,似乎插入信息时间需要添加到values()中,但是在这里我们可以省略,只要我们添加的是Register表中的所有字段即可,这里的“abc”可以是一个存储过程的返回的字段的信息,也可以是一个调用的一个方法查询出来的信息;
另外就是想说一下cast的用法,这里使用cast其实就是将一种数据类型的表达式转换为另一种数据类型的表达式。
暂时先写到这里吧,嘿嘿,要午休啦,接下来会努力的整理sql的语法以及存储过程的一些知识吧,之前的自己在这个方法是在是太薄弱啦,加油加油,嘿嘿。