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

SQL Server能否用单个视图筛选仅出现一次的OUTPUT类型数据?

单个视图实现指定SQL筛选需求

原始表数据

假设表名为YourTable,现有数据如下:

ID   Name   Type
-------------------
1    ZZ     INPUT
2    AA     INPUT
3    CC     OUTPUT
4    ZZ     OUTPUT
5    AA     INPUT
6    CC     INPUT
7    KK     OUTPUT
8    TT     INPUT
9    CC     OUTPUT
10   DD     OUTPUT

需求

筛选出仅出现一次且Type为OUTPUT的Name对应的记录。

预期结果

ID   Name   Type
-------------------
7    KK     OUTPUT
10   DD     OUTPUT

实现方案:单个视图完成

完全可以用单个视图实现,不需要拆分两个视图。以下提供两种常用写法:

写法1:子查询统计Name出现次数

CREATE VIEW vw_OutputOnceRecords
AS
SELECT t.ID, t.Name, t.Type
FROM YourTable t
WHERE t.Type = 'OUTPUT'
AND (SELECT COUNT(*) FROM YourTable WHERE Name = t.Name) = 1;

写法2:窗口函数(SQL Server 2008及以上版本支持)

CREATE VIEW vw_OutputOnceRecords
AS
SELECT ID, Name, Type
FROM (
    SELECT 
        ID, Name, Type,
        COUNT(*) OVER (PARTITION BY Name) AS NameCount
    FROM YourTable
    WHERE Type = 'OUTPUT'
) AS sub
WHERE NameCount = 1;

两种写法都能直接生成单个视图,精准筛选出仅出现一次且Type为OUTPUT的Name对应的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:50:28