数据库中涉及text数据的group by问题处理(复杂SQLselect语句)——萌新处理办法
text数据存在于group by命令里时的错误
大多数SQL的group by
命令都不支持text
格式的数据在其中。
如下:
任务要求是:查询所有部门详细信息和部门人数
需要用到俩个表格建立连接并分组
两个表格为:
Department,Employee
其中的Note为TEXT类型的数据
一般处理应该是:
SELECT
a.*,count(b.DepartmentID)
FROM
Department a,Employee b
WHERE
a.DepartmentID=b.DepartmentID
group by
a.DepartmentID,DepartmentName,Note;
但是因为text
数据的存在,会报如下错误:
使用视图的解决方法
所以我们先把其他分组的数据保存在一个视图中,之后再用一个select
来调用,命令如下:
//建立视图
create view YYY
as select
a.DepartmentID,a.DepartmentName,count(b.DepartmentID) as '人数'
from
Department a,Employee b
where
a.DepartmentID=b.DepartmentID
group by
a.DepartmentID,a.DepartmentName;
//开始查询
select
YYY.*,A.Note
from
YYY,Department A
where
YYY.DepartmentID=A.DepartmentID;
结果如下: