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

。字段内容,作为列名来更新。

2012-04-03 
在线等。。字段内容,作为列名来更新。。。ID colum12313AAA11AAA12AAA11AAA根据colum 字段内容,作为表的列来更

在线等。。字段内容,作为列名来更新。。。
ID colum 1 2 3 
1 3 A A A
1 1 A A A
1 2 A A A
1 1 A A A

根据colum 字段内容,作为表的列来更新。更新后结果为。

ID colum 1 2 3 
1 3 A A C
1 1 C A A
1 2 A C A
1 1 C A A

不能代码,sql能做到吗。在线等。。谢谢

[解决办法]
记录少的时候适用

SQL code
--> 测试数据:  TBif object_id('TB') is not null drop table TBGOcreate table TB (ID int,colum int,[1] varchar(1),[2] varchar(1),[3] varchar(1))insert into TBselect 1,3,'A','A','A' union allselect 1,1,'A','A','A' union allselect 1,2,'A','A','A' union allselect 1,1,'A','A','A'DECLARE @S VARCHAR(1000),@COL INTSELECT @S=ISNULL(@S,'')+'UPDATE TB SET ['+LTRIM([COLUM])+']=''C'' WHERE COLUM='+LTRIM([COLUM])+';' FROM TB--PRINT @SEXEC(@S)select * from  TBID          colum       1    2    3----------- ----------- ---- ---- ----1           3           A    A    C1           1           C    A    A1           2           A    C    A1           1           C    A    A(4 行受影响)
[解决办法]
探讨
js_szy 吃的好开心.

[解决办法]
SQL code
/*创建临时表*/create table test(   ID int,   [column] int,   [1] nvarchar(1),   [2] nvarchar(1),   [3] nvarchar(1),)/*创建示例数据*/insert into test(ID,[column],[1],[2],[3]) values(1,3,'A','A','A')insert into test(ID,[column],[1],[2],[3]) values(1,1,'A','A','A')insert into test(ID,[column],[1],[2],[3]) values(1,2,'A','A','A')insert into test(ID,[column],[1],[2],[3]) values(1,1,'A','A','A')/*执行更新*/update testset [1]=case when [column]=1 then 'C' else 'A' end,[2]=case when [column]=2 then 'C' else 'A' end,[3]=case when [column]=3 then 'C' else 'A' endselect * from test/*查询更新结果*/ID    column    1    2    31    3    A    A    C1    1    C    A    A1    2    A    C    A1    1    C    A    A
[解决办法]
SQL code
update TB set [1]= case when  colum=1 then 'C' else [1] end,[2]=case when  colum=2 then 'C' else [2] end,[3]=case when  colum=3 then 'C' else [3] end 

热点排行