[英]How to show all date from a certain Month by horizontally?
我在postgreSQL名称中将数据库表命名为“ time”,例如:
| Name | | Date1 | |AttendHour1| | Date2 | |AttendHour2|
---------------------------------------------------------------------
| Zakir1 | | 2018-10-01 | | 8.00 | | 2018-10-02 | | 8.00 |
| Zakir2 | | 2018-10-01 | | 9.00 | | 2018-10-02 | | 9.00 |
| Zakir3 | | 2018-10-01 | | 7.00 | | 2018-10-02 | | 7.00 |
从这张表我想要的结果是..
| Name | | 2018-10-01 | | 2018-10-02 |
----------------------------------------
| Zakir1 | | 8.00 | | 8.00 |
| Zakir2 | | 9.00 | | 9.00 |
| Zakir3 | | 7.00 | | 7.00 |
什么是postgreSQL查询?
就目前而言,您甚至不需要crosstab()
查询。 只是:
SELECT name, AttendHour1 AS "2018-10-01", AttendHour2 AS "2018-10-02"
FROM time;
如果您希望从列值中动态分配列名 ,那是不可能的。 SQL不允许动态列名。 您需要两步工作流程:
1.动态创建查询字符串。生成上面的查询:
SELECT format('SELECT name, AttendHour1 AS %I, AttendHour2 AS %I FROM time' , date1, date2) FROM time LIMIT 1;
2.执行查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.