日期:2014-05-17  浏览次数:20443 次

帮我看一条update语句
这样的 假如说A表里有个字段只有1和2两种状态
我现在做的就是根据这种状态更新这张表里另一个字段的值
如果是1更改为……
如果是2更改为……
这个怎么实现?

------解决方案--------------------
create proc test 
as 
if 某字段=1
begin
--更新字段
end
else
begin
--更新字段
end
------解决方案--------------------
SQL code

--1\
update B set col2=(case when b.col=1 then 值1 else when b.col=2 then 值2 end)

from B a

inner join B b

on a.id=b.id

--2\
create proc test  
as  
if col1=1
begin
update B set col2=值1
end
else
begin
update B set col2=值2
end

------解决方案--------------------
SQL code
update tb set col1 = case col2 when 1 then 情况1的值 else 情况2的值 end

------解决方案--------------------
我不知道你干嘛不结贴,上面的人大部分回复都是正确的,除了我的之外,刚好在别的贴里面找到了可以用来测试的数据。顺便完善一下,免得以为我乱回帖:
SQL code
CREATE TABLE [dbo].[station](
     [AreaNo] [float] NULL,
     [RoadNo] [float] NULL,
     [stationno] [float] NULL,
     [StationName] [nvarchar](255) NULL)
 
 insert into station select 4407,61,-1,'麻所'
 insert into station select 4407,61,0,'威所'
 insert into station select 4407,61,1,'麻1'
 insert into station select 4407,61,2,'麻2'
 insert into station select 4407,61,3,'麻3'
 insert into station select 4407,61,4,'麻4'
 insert into station select 4407,61,5,'威1'
 insert into station select 4407,61,6,'威2'
 insert into station select 4407,61,7,'威3'
 insert into station select 4407,61,8,'威4'
 
 SELECT * FROM station 
 UPDATE station
 SET roadno=(CASE WHEN stationno=1 THEN 123 ELSE   234 END )
 FROM station