如何编写SQL查询获取表中多列的唯一代码及其对应描述?
解决SQL提取唯一代码及对应描述的问题
你原来的SQL存在两处关键错误:
- 第一个查询里错把
Col2当成了描述字段,实际上Col3才是Col1的对应描述; - 第二个查询逻辑完全颠倒,应该提取
Col2(代码)和它对应的Col4描述,而非Col3和Col4。
另外关于去重:UNION关键字本身就会自动对合并后的结果集去重(UNION ALL才会保留重复条目),不需要额外操作。修正后的SQL如下:
select Col1 as Code, Col3 as `Desc` from <tableA> union select Col2 as Code, Col4 as `Desc` from <tableA>;
这段SQL会先分别提取:
Col1下所有代码及其对应Col3描述Col2下所有代码及其对应Col4描述
再通过UNION自动去重合并,最终得到你期望的唯一代码-描述列表:
A ADesc B BDesc C CDesc X XDesc Y YDesc Z ZDesc W WDesc
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

