/**//************************************************************************** 行列表转换 tableName -- 表的名称 rowName -- 行字段 columnName -- 要转换为列名的字段 data -- 要转换为列值的字段 **************************************************************************/ DECLARE@sqlNVARCHAR(4000) SET@sql=' SELECT rowName,' SELECT@sql=@sql+'SUM(CASE columnName WHEN '''+columnName+''' THEN data ELSE 0 END) AS '''+columnName+''',' FROM (SELECTDISTINCT columnName FROM tableName) AS a SELECT@sql=LEFT(@sql,LEN(@sql)-1) +' FROM tableName GROUP BY rowName' EXEC(@sql)