sql笔记

      1 从一个sql看功底的深浅。

         昨天,被一个网友问一个sql,不报错,但结果没有变化。sql是形如  

update team set team_scroe=team_scroe+10 where id=2

         其中team_scroe是int型 默认值设为null。 数据库mssql 2005。

        初看这个sql,我没看出来哪有问题。聪明的读者,你看出来是哪的问题了么。我再写一个sql,此语句适用于ms sql数据库。

update team set team_scrose=isnull(team_scrose,0)+10 where id=2 第一种写法,当id=2的记录的team_scroe的值是null的时候,执行下来 值还是null。 我那个网友就是犯了这个错误。 null+ 一个数 =null。 当然我们可以设置team_scroe的默认值是0.就不会遇到这个问题了。

        以后我们设置字段,养成好的习惯,设默认值。另外时刻注意空值。


   2 ms sql里查询语句如何增加一个自增字段。

      注意mssql200和mssql 2005实现方法不一样。 

select identity(int ,1,1) as id,* info #temptable from yourtable
2000的数据库要写入一个临时表。然后再查这个临时表。

2005以后的数据库,就不用写临时表了,可以利用 ROW_NUMBER() 举例:

select ROW_NUMBER() OVER (ORDER BY date ASC) AS ROWID,*  
 from tables



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值