我使用下面的 DYNAMIC SQL SCRIPT 来转换表
(1,AttributeName1,Attributevalue1)
(1,AttributeName2,Attributevalue2)
(2,AttributeName1,Attributevalue1)
(2,AttributeName2,Attributevalue2)
。
.
.
(11113,属性名称2,属性值2)
将表格转换为以下格式
(Datapoint,AttributeName1,AttributeName2,............AttributeNamen)
(1,AttributeValue1,AttributeValue2,............ ....)
(2,AttributeValue1,AttributeValue2,........)
。
.
.
(11113,属性值1,属性值2,............)
==============动态 SQL 脚本=================
SET @sql = NULL;<br/>
SELECT<br/>
GROUP_CONCAT(DISTINCT<br/>
CONCAT(<br/>
'max(CASE WHEN AttributeName = ''',<br/>
AttributeName,<br/>
''' THEN AttributeValue END) AS `',
AttributeName, '`'<br/>
)<br/>
) INTO @sql<br/>
FROM yourtable;<br/>
<br/>
SET @sql <br/>
= CONCAT('SELECT datapoint, ', @sql, ' <br/>
from yourtable<br/>
group by datapoint');<br/>
PREPARE stmt FROM @sql;<br/>
EXECUTE stmt;<br/>
DEALLOCATE PREPARE stmt;<br/>
问题:我的 SQL 列数限制用完了。我知道我必须使用 SPARSE 列(因为我的表有很多 NULL 值)。
知道如何在上面的 SQL 脚本中使用 SPARSE 列吗?