sql表关于列转行的做法

create   table   表a(typeid   int,bianhao   varchar(10),mingcheng   varchar(10),pinzhong   varchar(10),jiage   varchar(10))  
  insert   into   表a   select   1,'编号','名称','品种','价格'  
  insert   into   表a   select   2,'标号','品名','规格','售价'  
  insert   into   表a   select   3,'true','true','true','true'  
   
   
  declare   @s   varchar(8000)  
  set   @s   =   ''  
   
  select    
          @s=@s+'   union   select   原始名称     =max(case   typeid   when   1   then   '+name+'   end)'  
                                              +',自定义名称=max(case   typeid   when   2   then   '+name+'   end)'  
                                              +',是否显示     =max(case   typeid   when   3   then   '+name+'   end)'  
                                              +'   from   表a'  
  from   syscolumns  
  where   id=object_id('表a')   and   name   !=   'typeid'   order   by   colid  
   
  set   @s   =   stuff(@s,1,6,'')  
   
  exec(@s)  
   
  drop   table   表a  
   
  /*  
  原始名称             自定义名称           是否显示  
  编号                     标号                         true  
  名称                     品名                         true  
  品种                     规格                         true  
  价格                     售价                         true  
  */

说明:
/*select name(字段名) from syscolumns   where id=object_id('表a')  */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值