mysql - 选择表中一列中的重复值

标签 mysql sql sql-server oracle

我有这张表:

id int, name nvarchar(max), ..............

例子:

 ------------------
| id  | name       |
 ------------------
| 1   | Mohammed   | 
| 2   | Mohammed   |    
| 3   | Sakher     |
| 4   | Sakher     |
| 5   | Ahmad      |
| 6   | Ahmad      |
| 11  | Hasan      |
| 50  | Hasan      |
| 17  | Sameer     |
| 19  | Soso       |
| 110 | Omar       |
| 113 | Omar       |
| 220 | Omar       |
 ------------------

我正在尝试编写一个查询来得到这个结果:

id1 int , id2 int , name nvarchar(max)

例子:

 ------------------------
| id1 | id2 | name       |
 ------------------------
|  1  |  2  | Mohammed   |
|  3  |  4  | Sakher     |
|  5  |  6  | Ahmad      |
| 11  |  50 | Hasan      |
| 110 | 113 | Omar       |
| 110 | 220 | Omar       |
| 113 | 220 | Omar       |
 ------------------------

返回其中一列中的重复项。 我更喜欢 SQL Server 查询或标准 ANSI SQL。

最佳答案

此查询返回您请求的内容。比较 n1.id > n2.id 比 n1.id != n2.id 更好,因为这样你会得到每对两次(第二次,反转):

SELECT 
    n1.id as Col1, n2.id as Col2, n1.name
FROM 
    Names n1, Names n2
WHERE 
    n1.name = n2.name 
    AND n1.id > n2.id

关于mysql - 选择表中一列中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023608/

相关文章:

php - 如何从 2 个有条件的表中删除

php - 在 PHP 中将单值数组转换为变量的快速方法?

sql - 如果左连接表中的行为空,则使用另一行

mysql - 按类型选择表?

sql - 在 SQL Server 中创建 XML 时,如何将值包装在 CDATA 标记中?

php - 在 PHP 中执行其他查询之前如何查看 SQL 查询的结果是否为空

php - 如何从 codeIgniter 3.x.x 中的两个不同表中获取值

php - MySQL Query以某种方式显示信息

sql-server - SQL Server 从 XML 路径中删除尾随逗号

c# - 为什么我的项目连接到不同的数据源?