SQL中“有且仅有”一种状态的写法

通常我们在实际的项目中总会遇到通过子级的状态去更新父级的状态,如下所示,有六个子级数据分别从属于父级ID为568,591,593,且状态各不一样,求ID中状态只为1的数据,简而言之,求有且仅有状态为1的父级节点ID.

如图所示,要找到状态为1且只有1的数据,即只有591满足要求

这里用With比较简单,格式为With A(别名) as (Select * from 表B)

有且仅有则用到group,having

简写如下:

WITH IDSTATE AS

(

SELECT ID,STATE FROM IDSTATE

),

HAVEONLYSTATE AS

(

select min(ID) as ID,min(STATE) as STATE from IDSTATE
group by ID having count(ID)=1

)


SELECT *  FROM HAVEONLYSTATE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值