不能用unpivot来写
时间: 2024-09-28 20:16:39 浏览: 37
如果你正在使用一些不支持`UNPIVOT`操作的SQL方言,比如标准的SQL(如MySQL、PostgreSQL),你不能直接使用`UNPIVOT`来转换行到列的数据。在这种情况下,你可以采用其他方式来实现类似的功能。例如,使用`CASE`语句结合`GROUP BY`和`SELECT`,或者创建临时表(视图)来达到类似效果。具体示例取决于你的数据库系统。
在MySQL中,你可以尝试以下方法:
```sql
SELECT deptno, MAX(CASE WHEN loc = 'NEW YORK' THEN dname ELSE NULL END) as NY,
MAX(CASE WHEN loc = 'DALLAS' THEN dname ELSE NULL END) as DALLAS,
MAX(CASE WHEN loc = 'CHICAGO' THEN dname ELSE NULL END) as CHICAGO,
MAX(CASE WHEN loc = 'BOSTON' THEN dname ELSE NULL END) as BOSTON
FROM dept
GROUP BY deptno;
```
这个查询会返回每个部门编号及其对应城市的最大`dname`值。如果某个城市没有记录,则该列的结果将是`NULL`。
阅读全文