我有一个大型客户数据库,其中客户表包含人员及其与组织的关系。人们可能属于多个组织(这允许组织内的划分)。拥有多个组织的人必须有一个默认组织,这通常由 where 确定isDefault = T
,但是前端应用程序也可以isDefault = F
通过选择MIN(RowID)
.
所以在下表中,我们知道PersonId
3
有一个默认值OrgID
( 11
IsDefault = T) 但是,我需要弄清楚查找 PersonID 12 的默认值的查询。IE
Select orgId as default from myTable
where personID = 12
and isDefault = 'T'
如果返回 0 行,则执行如下查询:
Select orgId as default from myTable
where personID = 12
and
RowId in (select Min(rowId)
from myTable
where PersonId = 12)
RowID | PersonID | OrgId | isDefault
1 | 12 | 14 | F
2 | 12 | 17 | F
3 | 3 | 11 | T
4 | 3 | 14 | F