gpt4 book ai didi

sql - 从结果中消除重复组合

转载 作者:行者123 更新时间:2023-12-04 04:32:55 24 4
gpt4 key购买 nike

我有一个这样的选择结果:

from_loc    | to_loc   |
-------------------------
A | B
------------------------
B | C
------------------------
B | A
------------------------

如何从表中消除重复项,这意味着出现 A 到 B B 到 A 表示重复。

我正在尝试创建这样的结果,在尝试了几种方法后我无法解决这个问题......
from_loc    | to_loc   |
-------------------------
A | B
------------------------
B | C
------------------------

谁能给我一些提示或引用我怎样才能达到这种结果?

最佳答案

我没有测试这个解决方案,但它可以有更好的性能(更少的逻辑读取):

DECLARE @MyTable TABLE
(
from_loc VARCHAR(100) NOT NULL,
to_loc VARCHAR(100) NOT NULL
);
INSERT @MyTable (from_loc, to_loc) VALUES ('A', 'B');
INSERT @MyTable (from_loc, to_loc) VALUES ('B', 'C');
INSERT @MyTable (from_loc, to_loc) VALUES ('B', 'A');

SELECT DISTINCT src.from_loc_new, src.to_loc_new
FROM
(
SELECT CASE WHEN x.from_loc <= x.to_loc THEN x.from_loc ELSE x.to_loc END AS from_loc_new,
CASE WHEN x.from_loc <= x.to_loc THEN x.to_loc ELSE x.from_loc END AS to_loc_new
FROM @MyTable x
) src
-- You could also test these query hints to see if there is a better performance
-- OPTION (HASH GROUP)
-- or
-- OPTION (ORDER GROUP);

关于sql - 从结果中消除重复组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20275817/

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