Create Table Test1 

    carName  nvarchar(10), 
    language varchar(2), 
    Version  varchar(4),
    EnableIssue int
) Insert Into Test1 select 'Ford','CN','4.1','1'   
Insert Into Test1 select 'Ford','CN','3.1','0'
Insert Into Test1 select 'Ford','CN','2.1','1'
Insert Into Test1 select 'Benz','EN','5.0','1'
Insert Into Test1 select 'Benz','EN','4.0','1'
Insert Into Test1 select 'Benz','EN','3.1','1'
Insert Into Test1 select 'Benz','EN','2.0','1'
Insert Into Test1 select 'Bmw','TW','2.1','1'
Insert Into Test1 select 'MZD','CN','5.0','1'
Insert Into Test1 select 'MZD','CN','4.9','1'
select * from test1 t
where version not in (
select top 2 Version from test1 where carName=t.carName and language=t.language 
and EnableIssue = 1 order by version desc
) and EnableIssue = 1
--结果:
--carName language Version   EnableIssue
--Benz  EN  3.1      1
--Benz  EN  2.0    1--问题:我要将取得的2行值中EnableIssue的值变为3。
--结果为:
--carName language Version   EnableIssue
--Benz  EN  3.1      3
--Benz  EN  2.0    3
--参考http://topic.csdn.net/u/20100208/21/21dc467d-6136-4f7e-9fb3-73bd5a9ad0aa.html?2055981354drop table test1 

解决方案 »

  1.   

    select carName,language,Version,3 as EnableIssue from test1 t
    where version not in (
    select top 2 Version from test1 where carName=t.carName and language=t.language 
    and EnableIssue = 1 order by version desc
    ) and EnableIssue = 1
      

  2.   

    update test1
    set EnableIssue=3
    where version not in (
    select top 2 Version from test1 where carName=t.carName and language=t.language
    and EnableIssue = 1 order by version desc
      

  3.   

    select set EnableIssue=3 from test1 t
    where version not in (
    select top 2 Version from test1 where carName=t.carName and language=t.language
    and EnableIssue = 1 order by version desc
    ) and EnableIssue = 1 select *  from test1 t
    where version not in (
    select top 2 Version from test1 where carName=t.carName and language=t.language
    and EnableIssue = 1 order by version desc
    ) and EnableIssue = 3
      

  4.   

    修正一下
    update t
    set t.EnableIssue=3
    from test1 t
    where version not in (
    select top 2 Version from test1 where carName=t.carName and language=t.language
    and EnableIssue = 1 order by version desc
      

  5.   

    啊写错
    不小心按到发送键 =-=
    update test1 set EnableIssue=3 from test1 t
    where version not in (
    select top 2 Version from test1 where carName=t.carName and language=t.language
    and EnableIssue = 1 order by version desc
    ) and EnableIssue = 1 select *  from test1 t
    where EnableIssue = 3