sqlserver 修改数值为 数值=列名+数值

原来是正常的

列名1     列名2
数值1A   数值2A
数值1B   数值2B
数值1C   数值2C
数值1D   数值2D

现想做到 列名+数值

列名1     列名2        列名3
数值1A   数值2A      列名1:数值1A;列名2:数值2A
数值1B   数值2B      列名1:数值1B;列名2:数值2B
数值1C   数值2C      列名1:数值1C;列名2:数值2C
数值1D   数值2D      列名1:数值1D;列名2:数值2D

这张表的 列是**动态**的,

目前不知道该怎么写了

--TEST 代码
Create  table test
    (
     badge nvarchar(200)
    ,name nvarchar(200)
    )
    Insert into test select '010',N'张三' union all select '011',N'李四' union all select '012',N'王二' 
    select a.name into #a from dbo.syscolumns a  where a.id=object_id( 'test')
    select 
    (select 
        stuff((select ';'+c.name+':'+t.badge from  #a c for xml path('')) , 1 , 1 , '') )
    from test t
    select * from #a
    drop table #a
    drop table test

图片说明
可能是思路错了,求求各位大佬告知一下思路啊,又觉得原本很简单是不是想复杂l

1个回答

qq_40963234
qq_40963234 汗,大佬不是想修改表结构啊,是想修改字段的数据 数据=字段名+数据
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问