sql不能这样查询吗 ?谢谢!

来源:百度知道 编辑:UC知道 时间:2024/09/21 16:46:19
select * from borrow group by 借书证号
借书证号
1
2
3
2
3
出错
服务器: 消息 8120,级别 16,状态 1,行 1
列 'borrow.总编号' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'borrow.借书日期' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。

我本来想是返回这样的结果的
1
2
2
3
3
排整齐点。
难道一定要结合函数才能使用group ? 例如select count(*) from borrow group by 借书证号 .

select * from borrow order by 借书证号

就可以得结果
1
2
2
3
3

还有一点就是,不一定要用结合函数才能使用group BY的,group BY是分组
如果你了解得深点,group by 也可以达到去重的效果的.


select 借书证号 from borrow
group by 借书证号
order by 借书证号;
结果可以得到
1
2
3

select distinct 借书证号 from borrow
order by 借书证号;
一样

当然不行了,你要达到这样的效果可以用
select * from borrow order by 借书证号

group by 是分组,分完组后,所有的借书证号将只有一个,去掉了重复的,问题是,你又要想让他们都显示出来,这怎么行呢

用 order by 吧

排序应该用order by不用group by