sql - 使用 distinct 时查询选择行
问题描述
我想做以下事情。
假设数据看起来像这样
Number letter
1 b
1 c
1 a
2 d
2 b
2 c
3 a
3 b
3 c
我想按以下方式过滤数据列号以获取所有不同的数字,然后过滤掉字母 d
输出应该如下
Number letter
1
2
2 d
3
这可能吗?
我可以在两张表中执行此操作,但我想知道是否可以将其合并为一张
谢谢你
克里斯
解决方案
这应该这样做:
select distinct number, case when letter = 'd' then 'd' end letter from mytable
在 Oracle 中,您可以使用decode
来缩短查询:
select distinct number, decode(letter, 'd', 'd') letter from mytable
推荐阅读
- mysql - 如何在 Laravel 5.6 中对两列求和
- typescript - 在打字稿中从 NPM 包中扩展类
- html - 为什么这个链接变成紫色并失去了它的样式属性?
- angular - 之间的确切区别是什么?和?:角度运算符
- javascript - 我们如何在 Firestore db 中搜索 5,000 个用户?
- python - 如何自动调整我的散点图标签,而不会被 python 中的其他标签重叠?
- java - 客户端测试/WireMock - 检查日期转换是否正确执行的简单单元测试
- mysql - 基于一个公共列连接具有不同列和格式的两个表 - 需要显示重复项
- php - Dompdf 未正确显示自定义字体
- xamarin.forms - Xamarin 表单 ListView 条目字段传输