当前位置: 首页 > 面试题库 >

在SQL中选择不同的值对

郑俊美
2023-03-14
问题内容

我有一个Access 2010数据库,其中存储源计算机和目标计算机的IP地址。如果我的数据库中有以下条目

|来源| 目的地|
| -------------------------------- |
| A | B |
| B | A |
| A | B |
| C | D |
| D | D |

是否有任何查询来选择唯一对?也就是说,查询的输出应为

|来源| 目的地|
| ---------------------------------- |
| A | B |
| C | D |

问题答案:

您的问题似乎暗示两件事:

  1. 列出源/目标对时,您只想查看一个方向上的对,例如(A,B),而不是(B,A)。

  2. 该列表应省略源和目标相同的对,例如(D,D)

在这种情况下,查询…

SELECT DISTINCT source, destination
FROM
    (
            SELECT source, destination
            FROM SomeTable
        UNION ALL
            SELECT destination, source
            FROM SomeTable
    )
WHERE source < destination

…针对包含…的[SomeTable]运行时

source  destination
------  -----------
A       B          
B       A          
A       B          
C       D          
D       D          
E       D

…将产生:

source  destination
------  -----------
A       B          
C       D          
D       E


 类似资料:
  • 问题内容: 我在SQL数据库表中使用了带有2个字段的select Disctinct语句。这是我的代码。 并产生错误:。请帮忙 问题答案: 您在sql语句中只选择了一个列Author。BookCode不存在,因此也不会出现在数据集中。 将BookCode包含在Sql语句中,它将得到修复

  • 问题内容: 所以这是我的设置,我有2个具有以下(简化)模式的旧表和新表 我正在寻找一种SQL查询,该查询返回以下内容,但在1个查询中包含4列,而不是每个2列包含2个查询 因此,我理想的结果集将包含4列: 谢谢! 问题答案: 您是否尝试过JOIN语句:

  • 我有一个表,其中有多个条目对应一个FK。我想找出没有某些条目的FK值,例如 我的表有以下条目。 现在,我想从这个表中过滤所有没有ab3或ab4的FK。当然,我期望不同的值,即在这种情况下,结果将是FK=100和200。 我使用的查询是 当然,此查询不会获取所需的结果。

  • 问题内容: 我想写这样的查询: 对于具有这些列的表:ColA ColB ColC,ColD 从表顺序中选择第一个(ColA,ColB,ColC,ColD)与众不同(ColB,ColC) 该查询应该按ColD对表进行排序,然后按ColB和ColC的组合对结果进行分组(它们可能具有不同的数据类型),并返回组中的第一行(包含表的所有列)。 在MS SQL Server 2005中怎么可能? 问题答案:

  • 问题内容: 我的SQL Server数据库中有两个表。第一个是,第二个是。两个表中都有一列。 现在,我想从两个表中选择一个特定的值。 这就是我在做的 但是我的查询给出了错误。 问题答案:

  • 问题内容: 假设我有这个(MySQL)数据库,按增加的时间戳排序: 如何从该系统的上一行中选择StatusA更改的行?StatusB无关紧要(我在此问题中展示它只是为了说明每个系统可能有许多连续的行,其中StatusA不变)。在上面的示例中,查询应返回2011-01-03行(对于SystemA,StatusA在2011-01-01和2011-01-03之间更改),2011-01-06、2011-0