位置: 编程技术 - 正文

union组合结果集时的order问题(用union怎么把结果加起来)

编辑:rootadmin
近日,在一个项目中用到union组合两个select结果,调试sql时总是报错,所报错误也只是说在union附近有问题,因为sql中用到了group,我想也许是union不支持吧,由于时间紧,就先在程序中做了合并处理。但程序员对于代码的完美性要求总是不能放弃的,所以,常常会有如鲠在喉的感觉,不搞明白心里会不舒服。 仔细查看了MS的在线帮助,在有关UNION的描述中找到这样一段说明: 如果使用 UNION 运算符,那么各个 SELECT 语句不能包含它们自己的 ORDER BY 或 COMPUTE 子句。而只能在最后一个 SELECT 语句的后面使用一个 ORDER BY 或 COMPUTE 子句;该子句适用于最终的组合结果集。只能在各个 SELECT 语句中指定 GROUP BY 和 HAVING 子句。 在这段说明中并没有说union不能用于group,而是说在各个Select中不能包含order by,而在我的语句中恰恰就有这个,看来是我猜错了。试了一下把order去掉,果然不会报错了。也就是说,使用union的时候,各查询group是可以的,但不能order或compute。那如果说非要group,有没有办法呢?正常情况下只能在最后使用,而且是针对组合后的结果集进行排序的,而我刚才所说的group,就不能用于最终结果集,而只能用于每个查询。 这是正常的用法,有些人想在每个查询中先排序,然后再union,也有非正常的用法,类似: select * from (select a from [table] order by a) union ... 另外,union后面还可以加上all,在默认情况下,union时会删除重复的项,如果加上all则不进行筛选,组合所有的结果。如果能确定各查询结果不会有重复的项,最好就带上all,因为这样还是可以提高一些效率的。

推荐整理分享union组合结果集时的order问题(用union怎么把结果加起来),希望有所帮助,仅作参考,欢迎阅读内容。

union组合结果集时的order问题(用union怎么把结果加起来)

文章相关热门搜索词:union运算符将 select语句的结果组合成一个结果集,用union怎么把结果加起来,union集合运算,集合union数据结构c语言,union并集,集合union数据结构c语言,集合union数据结构c语言,union进行组合查询,内容如对您有帮助,希望把文章链接给更多的朋友!

MSSQL汉字转拼音函数实现语句 /*-------------------------------------------------------------函数:fn_GetPinyin描述:汉字转拼音(无数据表版)使用:dbo.fn_GetPinyin('中华人民共和国')=zhonghuarenmingongheguo作者:

sqlserver 中ntext字段的批量替换(updatetext的用法) 一、问题描述:1。在SqlServer中,ntext/text/image字段不允许应用replace函数替换内容;2。通过convert字段转换,可以把ntext字段转换为varchar(),然后用Re

sqlserver 常用存储过程集锦 =================分页==========================/*分页查找数据*/CREATEPROCEDURE[dbo].[GetRecordSet]@strSqlvarchar(),--查询sql,如select*from[user]@PageIndexint,--查询当页号@PageSizei

本文链接地址:https://www.jiuchutong.com/biancheng/349452.html 转载请保留说明!

上一篇:sqlserver 多表关联时在where语句中慎用trim()方法(sqlserver多表关联查询)

下一篇:MSSQL汉字转拼音函数实现语句(数据库汉字转拼音)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络