SQL技术咨询:如何提取数据表各分类列的非重复值列表
嘿,别担心,新手阶段对SQL的表述没那么精准太正常啦!我完全get到你的需求——就是想从board表的各个分类列里提取不重复的值对吧?下面我再把不同场景的写法给你理清楚:
提取分类列非重复值的SQL方案
单分类列的非重复值提取
你已经找对了单列的写法,就像你说的,提取category1的唯一值:
select distinct category1 from board;
执行后会得到category1的所有非重复结果:c、c++
如果要提取category2的非重复值,逻辑完全一样,只需要替换列名:
select distinct category2 from board;
这会返回category2的唯一值:tutorial、note、code
多分类列的组合非重复值提取
要是你想一次性获取category1和category2搭配的所有唯一组合,只需要把多个列都放在distinct关键字后面:
select distinct category1, category2 from board;
执行后会得到这两列的所有唯一配对结果:
c | tutorial c | note c++ | tutorial c++ | code
实用小技巧
- 注意:
distinct是作用于你指定的所有列的,多列场景下是按整个行的组合去重,不是分别对每列单独去重哦 - 如果需要让结果按一定顺序排列,可以加上
order by子句,比如提取category1非重复值并按字母顺序排序:
select distinct category1 from board order by category1;
内容的提问来源于stack exchange,提问作者Juicycool
相关产品推荐
相关产品推荐

