首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求sql倒换姓氏

2013-09-10 
求sql调换姓氏Patient 表name张三李四王五孙六想上下两行姓氏换位置,变成李三张四孙五王六[解决办法]SQL20

求sql调换姓氏
Patient 表
name  
张三  
李四   
王五   
孙六   
想上下两行姓氏换位置,
变成

李三
张四
孙五
王六
[解决办法]
SQL2000的方法,


create table Patient(name varchar(10))

insert into Patient
 select '张三' union all
 select '李四' union all
 select '王五' union all
 select '孙六'


--更新
select identity(int,1,1) 'rn', name, '          ' 'newname'
 into #t
 from Patient

 update a 
  set a.newname=case when a.rn%2=0 then left(c.name,1)+right(a.name,1)
                     else left(b.name,1)+right(a.name,1) end
  from #t a
  left join #t b on a.rn=b.rn-1
  left join #t c on a.rn=c.rn+1

update a
 set a.name=b.newname
 from Patient a
 inner join #t b on a.name=b.name

drop table #t
 
--结果
select name from Patient

/*
name
----------
李三
张四
孙五
王六

(4 row(s) affected)
*/

[解决办法]
我觉得这样搞有点不靠谱,复姓的你怎么处理?楼主你说说你的意图?

热点排行