日期:2014-05-19  浏览次数:20642 次

sql server 小问题
名称           一月           二月           三月           四月       五月       ....十二月      
    张三           100               200               300               400           500           ....1200      
       
    我现在想把这张表改成如下格式      
       
    名称           月份           金额      
    张三           一月           100      
    张三           二月           200      
    张三           三月           300      
    张三           四月           400      
    张三           五月           500      
    ...               ....           ...      
    张三           12月           1200      


现有方法如下;

SELECT       名称, '一月 '       as       月份,一月       as       金额       from       tablename       group       by       名称      
    UNION      
    SELECT       名称, '二月 '       as       月份,二月       as       金额       from       tablename       group       by       名称      
    UNION      
    .      
    .      
    .      
    SELECT       名称, '十一月 '       as       月份,十一月       as       金额       from       tablename       group       by       名称      
    UNION      
    SELECT       名称, '十二月 '       as       月份,十二月       as       金额       from       tablename       group       by       名称

以上的方法能解决,但是遇到多的表就爱麻烦了。有没有其他用函数的方法。

另外问一下;下面什么意思啊     我看了3个小时没有看懂,请高手执教一下多谢
列变成行      
    declare       @       varchar(8000)      
    set       @= ' '      
    select       @=@+rtrim(name)+ '