gpt4 book ai didi

sql - 显示列中具有不匹配值的记录 SQL Server

转载 作者:行者123 更新时间:2023-12-02 03:09:53 25 4
gpt4 key购买 nike

我试图创建一个查询来查找特定列 (ID) 中的所有重复值,然后仅显示第二列 (Name) 不匹配。 NameID 字段(复合键)在创建的许多记录中应该是相同的值,但我发现一些记录具有不同的 Name使用相同的 ID

<table>
<tr>
<th>Name</th>
<th>ID</th>
<th>Date</th>
<th>Time</th>
</tr>
<tr>
<td>Williams</td>
<td>55555</td>
<td>2/13/2016</td>
<td >11:39am</td>
</tr>
<tr>
<td>Williams</td>
<td>55555</td>
<td>3/23/2016</td>
<td>9:20am</td>
</tr>
<tr>
<td >Johnson</td>
<td>55555</td>
<td >5/13/2016</td>
<td >2:56pm</td>
</tr>
<tr>
<td>Williams</td>
<td>55555</td>
<td>2/13/2016</td>
<td>11:39am</td>
</tr>
<tr>
<td >Jackson</td>
<td>99999</td>
<td>9/1/2016</td>
<td >8:09am</td>
</tr>
<tr>
<td >Smith</td>
<td >77777</td>
<td >10/10/2016</td>
<td >3:03am</td>
</tr>
</table>

查询应返回第 3 行(Johnson 记录)作为不匹配的记录,其中在多个记录中使用了重复的 ID。我尝试了不同的方法,但没有得到想要的结果。

最佳答案

如果我对这个问题的理解正确,你想找到一个名字在哪里使用通常被另一个名字使用的 id。

create table [table] 
(
Name varchar(50),
ID int,
[Date] date,
[Time] time
);

insert into [table] values('Williams', 55555, '13-feb-2016', '11:39:00');
insert into [table] values('Williams', 55555, '23-mar-2016', '09:20:00');
insert into [table] values('Johnson', 55555, '13-feb-2016', '11:39:00');
insert into [table] values('Williams', 55555, '13-feb-2016', '11:39:00');
insert into [table] values('Jackson', 99999, '01-sep-2016', '11:39:00');
insert into [table] values('Smith', 77777, '10-oct-2016', '11:39:00');

with cte as (
select id, name
from [table]
group by id, name
having count(*) > 1
)
select *
from [table]
inner join cte on [table].id = cte.id
and [table].name != cte.name

编辑:添加数据以便我可以验证解决方案

关于sql - 显示列中具有不匹配值的记录 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40513853/

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