SQL新手求助:合并两个SELECT结果并筛选唯一值
解决两个SQL查询结果拼接并去重的问题
嘿,作为SQL新手能想到要合并两个查询结果还想着去重,已经很到位啦!要实现你的需求,咱们用UNION关键字就完美搞定——这玩意儿专门用来合并多个SELECT的结果,还会自动帮你去掉重复的行。
直接给你写好完整的SQL语句:
SELECT CONCAT('CSALES - PNP - ', [FArticle no.], ' - ', [Store ID], ' - ', [base UOM]) AS CombinedResult FROM tblStock UNION SELECT CONCAT('CSALES - PNP - ', [FArticleNumber], ' - ', [Store ID], ' - ', 'EA') AS CombinedResult FROM tblSales;
核心要点拆解
UNION的核心作用:自动合并两个查询的结果集,同时剔除重复的行,刚好匹配你“筛选唯一值”的需求。- 列的一致性要求:使用
UNION时,必须保证两个SELECT语句返回的列数、数据类型完全一致;这里两个查询都返回拼接后的字符串,完全符合要求。给列统一起别名CombinedResult,能让最终结果的列名更清晰。 - 效率优化小技巧:如果不需要去重,只需要单纯合并结果,就改用
UNION ALL——它跳过了重复值检查的步骤,执行效率会更高。
要是你运行的时候遇到啥小问题,比如字段名拼写错误或者权限问题,随时再调整就行~
内容的提问来源于stack exchange,提问作者Mark Blackburn
相关产品推荐
相关产品推荐

