此问题已在此处有答案:
How do you flip rows into new columns?(1个答案)
PIVOT VIEW using PostgreSQL(2个答案)
15天前关闭。
我有一个表模式如下:
| 学生证|主题|马克斯|
| - -----|- -----|- -----|
| 1|数学|十个|
| 1|物理学|三十|
| 2|数学|二十五|
我想选择以下格式的值:
| 学生证|数学|物理学|
| - -----|- -----|- -----|
| 1|十个|三十|
| 2|二十五||
你能建议如何在SQL中实现这一点吗?我用的是PostgreSQL。
或者我必须用Java来做,因为这是我们的中间件?
谢谢你。
1条答案
按热度按时间lp0sw83n1#
您可以使用
crosstab
函数,它属于tablefunc
模块。首先,下载模块。之后你可以使用这个查询(* 必要的插入可以找到here *):
这里
crosstab
接收1个参数,一个文本形式的SQL查询,并将查询结果转置到以下列中:entity_id
、Math
和Physics
。你可以在这里找到更多关于
crosstab
的信息:* * one,two**。