我有这张表:
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/