这是一个动态sql,用于透视记录,
SET @sql = NULL;SELECt GROUP_CONCAt(DISTINCT CONCAt('MAX(CASE WHEN date = ''', date, ''' THEN Value ELSE NULL END) AS ', CONCAt('`', date, '`') )) INTO @sqlFROM TableName// WHERe date >= curdate() - interval 3 day // add condition hereORDER BY date;SET @sql = CONCAt('SELECt ', @sql, ' FROM TableName');PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;- SQLFiddle演示



