A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨正 于 2012-7-11 10:51 编辑

sql server怎样更改某一列的多个行的数据呢?(用一个语句实现)
如下图,要在列Year中为NULL的1,2,3,4行输入数据。

insert、update好像都不行,求解。
在线等大家的方法。

﹏﹏﹏﹏﹏﹏ . ﹏﹏﹏﹏﹏﹏ .﹏﹏﹏﹏﹏﹏ . ﹏﹏﹏﹏﹏﹏ .﹏﹏﹏﹏﹏﹏   2012.7.11   10:50更新

不好意思,我的图片中Year的数据类型错啦,这里更正一下。

我用的是最笨的方法:
  1. update Persons set Year=1970 where Id=1
  2. update Persons set Year=1975 where Id=2
  3. update Persons set Year=1980 where Id=3
  4. update Persons set Year=1985 where Id=4
复制代码
不知道有没有更简单一点的方法呢?

8 个回复

倒序浏览
你的意思是把null值改成相同的日期吗?
如果是的话 update 表名 set [Year]='2012-7-10' where [Year] is null
回复 使用道具 举报
找共同点啊,如果没有共同点的话就分别update吧
回复 使用道具 举报
如果你想将Year列的4个Null修改为同一个值,楼上的是正解,
我猜你的意思多半是想将4个Null分别修改为不同的值,可以用下面的这种方法:
update 表名 set Year = t.c2 from
(
        select 1 as c1,'2008-6-1' as c2 union
        select 2,'2009-6-1' union
        select 3,'2010-6-1' union
        select 4,'2011-6-1'
) t
where 表名.Id = t.c1
分别将四个null修改为'2008-6-1','2009-6-1','2010-6-1','2011-6-1'
回复 使用道具 举报
update  table1 set Year="2012" where ID in (1,2,3,4) order by charindex(CAST(ID AS VARCHAR(3)),'1,2,3,4');
回复 使用道具 举报
孙宁宇 发表于 2012-7-10 19:11
你的意思是把null值改成相同的日期吗?
如果是的话 update 表名 set [Year]='2012-7-10' where [Year] is n ...

这个就可以!!!
回复 使用道具 举报
孙宁宇 发表于 2012-7-10 19:11
你的意思是把null值改成相同的日期吗?
如果是的话 update 表名 set [Year]='2012-7-10' where [Year] is n ...

这个就可以!!!
回复 使用道具 举报
杨正 中级黑马 2012-7-11 10:56:13
8#
update  table1 set Year="2012" where ID in (1,2,3,4)

你好,当更改的数值一样时用这个可以,不一样时怎样实现呢?如上图{:soso__13537489320994703755_2:}
回复 使用道具 举报
杨正 中级黑马 2012-7-11 10:58:30
9#
你的意思是把null值改成相同的日期吗?
如果是的话 update 表名 set [Year]='2012-7-10' where [Year] is null

你好,Year的值不一样,如上图{:soso__17261220355448879493_1:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马