交叉表或数据透视表就是答案。从那里可以选择SELECT FROM … INSERT INTO …或从单个SELECT创建一个VIEW。
就像是:
SELECT country,
MAX( IF( key='President', value, NULL ) ) AS President,
MAX( IF( key='Currency', value, NULL ) ) AS Currency,
...
FROM table
GROUP BY country;