gpt4 book ai didi

sql - T-Sql 查询 - 获取跨 2 列的唯一行

转载 作者:行者123 更新时间:2023-12-04 17:28:54 25 4
gpt4 key购买 nike

我有一组数据,列 x 和 y。该集合包含的行中,对于任意 2 个给定值 A 和 B,在 x 和 y 列中分别有 A 和 B 的行,并且在 x 和 y 列中分别有 B 和 A 的第二行。

例如

        **Column X**            **Column Y**
Row 1 A B
Row 2 B A
  • 里面有多对数据
    这一套遵循这个规则。
  • 对于列中包含 A、B 的每一行
    X 和 Y,总会有一个
    X 和 Y 中带有 B、A 的行
  • X 和 Y 列的类型为 int

  • 我需要一个 T-Sql 查询,该查询给出了一个具有上述规则的集合,它将返回第 1 行或第 2 行,但不能同时返回两者。

    要么答案非常困难,要么太简单以至于我只见树木不见森林,无论哪种方式,它都让我爬上墙。

    最佳答案

    将谓词添加到您的查询中,

    where X < Y

    你永远不能得到第二行,但总会得到第一行。

    (这假设当您编写“两个给定值”时,您指的是两个不同的给定值;如果这两个值可以相同,则添加谓词 where X <= Y(以去除 X > Y 的所有“反向”行)和然后将 distinct 添加到您的选择列表中(将 X == Y 的任意两行折叠为一行)。)

    回复评论:

    也就是说,如果当前您的查询是 select foo, x, y from sometable where foo < 3;将其更改为 select foo, x, y from sometable where foo < 3 and x < y; ,或者对于第二种情况(其中 X 和 Y 不是不同的值) select distinct foo, x, y from sometable where foo < 3 and x <= y; .

    关于sql - T-Sql 查询 - 获取跨 2 列的唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1338235/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com