sql-server - 从 SQL Server 中的结果集中删除重复的组合

标签 sql-server sql-server-2008

我有一个包含两列数据的表格:

1,2
1,3
1,4
2,1
2,2
3,1

我只想选择独特的组合,所以我最终会得到:

1,2
1,3
1,4
2,2

因为 1,2 与 2,1 等是相同的组合

我将如何在 SQL 语句中处理它?<​​/p>

实际上,我的表有第三列,我想添加一个基于第三列的 where 子句,以便只考虑那些行

最佳答案

SELECT * FROM (
    SELECT
        CASE WHEN Col1 <= Col2 THEN Col1 ELSE Col2 END AS Col1,
        CASE WHEN Col1 <= Col2 THEN Col2 ELSE Col1 END AS Col2
    FROM
        MyTable
) Ordered
GROUP BY
    Col1, Col2

您可以在 CASE 表达式上通过 GROUP 进行子查询而无需子查询,但阅读时间较长。

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

相关文章:

sql-server - 更改 SQL Server 2005 中数据库图表的所有者

SQL 服务器 : aging based on last date

sql - SQL Server 子查询无法选择所需的结果

sql - 为什么我的 SQL SUM 在包含 NULL 值时不返回 NULL?

sql-server-2008 - 更改 SQL Server 维护计划报告位置?

java - 如何在 Java 应用程序中为 SQL Server 捕获/编码特殊字符?

SQL如何格式化包含聚合或子查询的时间

c# - 在员工管理系统中实现假期

SQL IN 查询产生奇怪的结果

sql - 将日期时间列拆分为年、月和周