MSSQL利用报错得到数据库列名

GROUP BY 语句

group by可以将数据集按照某个字段划分为不同的组,可以在group by的基础上加以利用count、sum、max、min等聚合函数在组上进行数据处理

select name,sum(source) from test.student group by id;  -- 查询每个人的姓名及总成绩

group by id就是按学号进行分组,sum(source)就是显示每一组的总成绩(即每个学号对应的成绩)

HAVING 语句

having经常与group by语句连用,用于过滤group by语句返回的数据集。弥补了聚合函数不能与where关键词连用的缺陷。

select name,sum(source) from test.student group by id having sum(source)>230; -- 查询总成绩超过230的学生姓名及总成绩

having sum(source)>230就是一个过滤条件,只有总成绩超过230的记录才会显示。

MSSQL报错信息得到表的列名

select * from student having 1=1;

因为要查询所有字段。在表中,从左开始第一个字段就是id,而student.id没有包含在group by当中,而每一列都存在id数据,数据库会因不知道该返回哪一条数据而报错,并且报错信息中包含此列student.id

select * from student group by id having 1=1;

因为student.name没有包含在group by当中,所以会报错,并且报错信息中包含此列student.name

依次可以得到此表所有列名。

转载于:https://www.cnblogs.com/dubhe-/p/10023200.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值