You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 从invitation表查询存在未关闭邀请的ID的实现方法

SQL Server 查询代码实现

核心逻辑说明

判断邀请未关闭的依据为InvitationStatus字段值为Opened(初始开启未关闭)或ReOpened(重新开启后未关闭),只要对应ID存在任意一条符合该状态的记录即属于目标查询范围。

方案1:极简写法(适配1000+行小表场景)

SELECT DISTINCT ID
FROM invitation
WHERE InvitationStatus IN ('Opened', 'ReOpened');

方案2:高性能写法(数据量增长后依然适用)

使用EXISTS子查询避免无效全表扫描,配合ID、InvitationStatus联合索引后性能提升明显:

SELECT DISTINCT t.ID
FROM invitation t
WHERE EXISTS (
    SELECT 1
    FROM invitation t_sub
    WHERE t_sub.ID = t.ID
      AND t_sub.InvitationStatus IN ('Opened', 'ReOpened')
);

方案3:带统计扩展写法

如果需要同时查看每个ID对应未关闭邀请的数量,可使用分组聚合实现:

SELECT ID, COUNT(*) AS unclosed_invitation_count
FROM invitation
WHERE InvitationStatus IN ('Opened', 'ReOpened')
GROUP BY ID;

结果验证

基于你提供的示例数据,以上查询返回的ID结果为0、1、2、3,完全匹配业务逻辑。

内容的提问来源于stack exchange,提问作者Robert Sebas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:12:03