假设我有两列整数,A 和 B。现在我想要这些不同的值,这意味着如果 A 和 B 都有 1,我只想要 1 一次。
注意:我对获得不同的行不感兴趣。我只想从此表中获取唯一的整数值,它可以在 A 或 B 中
我可以在某个临时表的一列中插入 A 和 B 的值,并对该列执行不同的选择。
有什么更复杂的(性能方面)?
假设我有两列整数,A 和 B。现在我想要这些不同的值,这意味着如果 A 和 B 都有 1,我只想要 1 一次。
注意:我对获得不同的行不感兴趣。我只想从此表中获取唯一的整数值,它可以在 A 或 B 中
我可以在某个临时表的一列中插入 A 和 B 的值,并对该列执行不同的选择。
有什么更复杂的(性能方面)?
我认为这样的事情应该有效:
选择所有不同的 A,然后选择所有不同的 B' UNION 所有这两个集合从该联合结果集中选择 DISTINCT SELECT DISTINCT * FROM ( SELECT DISTINCT A FROM YourTable UNION ALL SELECT DISTINCT B FROM YourTable )
在 Lukáš 的帮助下,您可以简单地编写:
SELECT A FROM YourTable
UNION
SELECT B FROM YourTable
因为正如他正确指出的那样,常规 UNION 不会返回重复项。您甚至不需要在您的个人 SELECT 上使用 DISTINCT 子句 - 非常巧妙!谢谢,卢卡什!
马克