【发布时间】:2016-06-14 11:06:40
【问题描述】:
我有一个 SQL 数据库,其中包含一个包含几个字段的电话号码记录的表
PersonGUID (Fk, uniqueidentifier)
PhoneSequence (int)
PhoneTypeCode (Fk)
AreaCode
PhoneNumber
PhoneGUID (Pk, uniqueidentifier)
每个 PersonGUID 有多个记录是正常的,但我们在导入大量电话号码记录列表时出现错误,其中 PhoneSequence 为相同的 PersonGUID 记录设置为 1。这些人有多个记录,其中PhoneTypeCode='Mobile' 和PhoneTypeCode='Home' 都标有PhoneSequence=1,因此系统假定他们有两个主要电话号码。
我想创建一个查询,该查询将在表中搜索具有多条记录但不知道如何说“查找同时拥有家庭电话和手机且两条记录的序列均为 1 的人”
不可避免地,我想更新家庭电话记录(对于同时拥有两者的用户),因此序列为 2。
这是我能想到的最接近的:
update tPersonPhone
set PhoneSequence = 2
from tPersonPhone pp
where PhoneTypeCode ='home' and
exists (select * from PersonPhone pp1
where pp.PersonPhoneGUID = pp1.PersonPhoneGUID
and PhoneTypeCode in ('home','mobile')
and PhoneSequence = 1)
谢谢
【问题讨论】:
-
请用您正在使用的数据库标记您的问题。
-
添加标签,使用 MS SQL Server 08R2
标签: sql sql-server sql-server-2008