这是一个朋友给我的,关于SQL中使用的"交叉表算法",很好用.据说是一个DB2工程师写的.

/**//**************************************************************************
行列表转换
tableName -- 表的名称
rowName -- 行字段
columnName -- 要转换为列名的字段
data -- 要转换为列值的字段
**************************************************************************/
DECLARE @sql NVARCHAR(4000)
SET @sql = '
SELECT rowName,'
SELECT @sql = @sql + 'SUM(CASE columnName WHEN '''+columnName+'''
THEN data ELSE 0 END) AS '''+columnName+''','
FROM (SELECT DISTINCT columnName FROM tableName) AS a
SELECT @sql = LEFT(@sql,LEN(@sql)-1) + ' FROM tableName GROUP BY rowName'
EXEC(@sql)
本文介绍了SQL中的交叉表算法,这种算法在DB2环境中被广泛应用,对于数据处理和分析非常实用。
171万+

被折叠的 条评论
为什么被折叠?



