在SQL Server中是否可以" group"基于特定列中的数据的单个查询的结果,就好像我运行了多个选择查询一样?
我试图找到一种懒惰的方法来提取数据,如下所示:
StoreId | ClientId
1 | 4
1 | 5
2 | 5
2 | 6
2 | 7
3 | 8
将每个商店ID结果分组到自己的表中。
虽然我可以为每个商店ID创建一个select语句来对其进行分组,但列表太长而无法完成。
答案 0 :(得分:1)
我无法想象这确实很有用,但您可以使用动态SQL来执行此类操作。我不能说我会推荐这种方法来生成excel文档,但无论如何。
create table #Something
(
StoreID int
, ClientID int
)
insert #Something
select 1, 4 union all
select 1, 5 union all
select 2, 5 union all
select 2, 6 union all
select 2, 7
declare @sql nvarchar(max) = ''
select @sql = @sql + 'select StoreID, ClientID from #Something where StoreID = ' + CAST(StoreID as varchar(4)) + ';'
from #Something
group by StoreID
select @sql
exec sp_executesql @sql
drop table #Something