联盟在与ACCESS相同的表中

时间:2017-04-06 19:06:12

标签: ms-access union

我有一张包含此类数据的表格:

+------------+----------+----------+
| 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会做这个工作,但我不会得到任何东西,因为我认为工会是两个表,但问题是我在同一个表中有数据。

感谢您的帮助

2 个答案:

答案 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);",这可能做到这一点。