使用 SQL 服务器 CTE 检索多个结果集

Use SQL Server CTE to retrieve multiple result sets

我想知道如何根据一个 CTE 检索多个结果集?类似于我下面的内容 - 但显然这是行不通的。

有谁知道我如何根据那个 CTE 获得这 2 组(或更多)数据? (更多,因为从同一个 CTE 中获得总记录数会很好。)

;WITH CTE AS  
(
  SELECT 
      Column1, Column2, Column3 
  FROM 
      Product 
  WHERE 
      Name LIKE '%Hat%' AND Description Like '%MyBrand%'
)
SELECT DISTINCT CategoryId FROM CTE
SELECT DISTINCT BrandId FROM CTE

CTE 仅适用于紧随其后的查询,因此无法将其用于两个单独的 select 语句。您要么需要将数据保存在临时 table 之类的东西中,要么 construct/invoke CTE 两次。