我有一张包含此类数据的表格:
+------------+----------+----------+
| Unique ID | Name | Class |
+------------+----------+----------+
| 1 | Name 1 | Class A |
| 2 | Name 2 | "" |
| 3 | Name 3 | Class C |
| 4 | Name 1 | "" |
| 5 | Name 4 | "" |
| 6 | Name 4 | "" |
+------------+----------+----------+
我正在尝试做一些我认为很简单的事情,但我没有找到。
我正在尝试"提取"只有' Class'中具有空字符串值的行对于一组同名的人。
所以在这种情况下我会得到这个结果:
+------------+----------+--------+
| Unique ID | Name | Class |
+------------+----------+--------+
| 2 | Name 2 | "" |
| 5 | Name 4 | "" |
+------------+----------+--------+
所以不是名字1,因为即使有一行""另外一行有A'。
我认为UNION会做这个工作,但我不会得到任何东西,因为我认为工会是两个表,但问题是我在同一个表中有数据。
感谢您的帮助
答案 0 :(得分:1)
访问语法可能略有不同,但这会在Oracle中返回您想要的内容:
SELECT distinct Name, Class FROM table1 Where Name NOT in (select name from table1 where class is not null)
答案 1 :(得分:-1)
联盟融合了两个结果集,无论它们是否来自同一个表格都是无关紧要的。您要做的是从结果集中省略具有相同名称和类的行不为空。没有你的查询扩展或更改是一个问题,但如果你添加一个句子,其中说明的地方"名称不在(从表中选择名称不是null);",这可能做到这一点。