【发布时间】:2021-11-16 07:37:18
【问题描述】:
SQL 是删除字段中重复项的正确工具吗?
我有一个访问数据库,我希望删除每条记录的同一字段中数据相同的字段。
所以,例如我可能有这个:
-------------------------------
|PN |SU |DE |TD |
-------------------------------
|1001 |A |Widget |Red |
|1002 |A |WidgetS |Red |
|1003 |A |WidgetL |Red |
-------------------------------
这是
的结果SELECT [PN],[SU],[DE],[TD] FROM tbl WHERE ([PN] IN ('1001','1002','1003'))
在这种情况下,我不希望从 [SU] 和 [TD] 字段返回任何内容,因为它们都包含相同的数据。
是否可以对查询执行任何操作,以便在所有记录中的数据相同的字段中不返回任何内容,从而使结果看起来像这样?
------------------
|PN |DE |
------------------
|1001 |Widget |
|1002 |WidgetS |
|1003 |WidgetL |
------------------
SQL 是执行此操作的正确工具,还是我最好在结果出来后对这些数据进行后处理???
【问题讨论】:
-
所以如果
TD有不同的值,您会想查看数据,但如果它们都相同,您就不想了吗? -
对于给定的示例,您所要做的就是不在查询中包含 SU 和 TD 字段以获得所需的输出。不清楚你想完成什么。
-
构建报表并使用文本框 HideDuplicates 属性。
-
@June7 问题是我不知道不要在查询中包含
SU和TD字段,因为我不知道它们会有重复的值!如果我首先知道这一点,我会将它们排除在查询之外……@Nick.McDermaid 是的,你是对的;如果它们包含的数据在所有字段中都不相同,我希望看到它们。 -
查询中包含的字段不能是动态的 - 它要么存在,要么不存在。查询不打算作为演示工具。正如我所说,建立一个报告。