zoukankan      html  css  js  c++  java
  • 行转列,参数是文本类型

    create table test(采购编号 nvarchar(50)
    ,属性名称 nvarchar(50)
    ,属性文本 nvarchar(50)
    )

    insert into test select '01','付款方式','一次性'
    insert into test select '02','厂商名称','IBM'

    insert into test select '02','付款方式','分期付款'
    insert into test select '01','厂商名称','百度'


    select * from test

    ------------------------存储过程型--------------------------------
    declare @sql varchar(8000)
    set @sql = 'select 采购编号'
    select @sql = @sql + ',max(case 属性名称 when '''+属性名称+''' then 属性文本 end) ['+属性名称+']'
    from (select distinct 属性名称 from test) as a
    select @sql = @sql+' from test group by 采购编号'
    print @sql
    exec(@sql)

    ------------------------存储过程型结束--------------------------------

    ------------------------pivot函数型--------------------------------

    select 采购编号,付款方式,厂商名称
    from test
    pivot
    (
    max(属性文本) for 属性名称 in ([付款方式],[厂商名称])
    )
    tmp

    ------------------------pivot函数型--------------------------------

    drop table test

    select 采购编号,

    max(case 属性名称
    when '厂商名称' then
    属性文本
    end) [ 厂商名称 ],

    max(case 属性名称
    when '付款方式' then
    属性文本
    end) [ 付款方式 ]
    from test
    group by 采购编号

    其中max参数如果是nvarch()则返回该字段长度最长的字符串

    注:该文章出处找不到了,暂时记录下来

  • 相关阅读:
    背包系列 hdu3449 有依赖背包
    背包系列 hdu 3535 分组背包
    屏蔽scrollview的滚动
    高精度算法代码
    输入法出现时,中间固定,底部上移的代码
    排序之分治排序
    排序之双向冒泡排序
    Miller Rabin 大素数测试
    来聊聊WWDC 苹果大会上的那些黑科技
    不想成为好leader的程序猿不是好攻城狮
  • 原文地址:https://www.cnblogs.com/puweibuqi/p/4156136.html
Copyright © 2011-2022 走看看