Tsql 组过滤t-sql
我的结构如下:Tsql 组过滤t-sql,tsql,Tsql,我的结构如下: cid status 1 T 2 T 1 T 1 T 2 T 3 X 3 T 5 T 如何获取所有状态均为“T”的cid 响应必须注意3被省略,因为它也有一个X状态: 您可以使用带有行数函数的公共表表达式,该函数类似于GROUP BY: 这里有一个提示:您可以使用一个带有行数函数的公共表表达式,该函数类似于GROUP BY: 这是小提琴: cid 1 2 5 WITH CTE AS( SELECT
cid status
1 T
2 T
1 T
1 T
2 T
3 X
3 T
5 T
如何获取所有状态均为“T”的cid
响应必须注意3被省略,因为它也有一个X状态:
您可以使用带有行数函数的公共表表达式,该函数类似于GROUP BY:
这里有一个提示:您可以使用一个带有行数函数的公共表表达式,该函数类似于GROUP BY: 这是小提琴:
cid
1
2
5
WITH CTE AS(
SELECT CID, RN = ROW_NUMBER()OVER(PARTITION BY CID ORDER BY CID)
FROM tbl
WHERE NOT EXISTS(
SELECT NULL FROM tbl t2
WHERE t2.CID=tbl.CID
AND Status <> 'T'
)
)
SELECT CID FROM CTE
WHERE RN = 1