组SQL Server将结果选择到不同的结果表中

时间:2015-09-28 15:43:10

标签: sql-server sql-server-2008

在SQL Server中是否可以" group"基于特定列中的数据的单个查询的结果,就好像我运行了多个选择查询一样?

我试图找到一种懒惰的方法来提取数据,如下所示:

StoreId | ClientId   
  1     |    4     
  1     |    5      
  2     |    5     
  2     |    6      
  2     |    7   
  3     |    8

将每个商店ID结果分组到自己的表中。

虽然我可以为每个商店ID创建一个select语句来对其进行分组,但列表太长而无法完成。

1 个答案:

答案 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