SQL用循环查询的结果 建临时表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL用循环查询的结果 建临时表相关的知识,希望对你有一定的参考价值。
sql存储过程中建临时表crerte table #temp( a.b.c.d. )
插入数据 a=12 b=13 c=14 d=15
那个 12.13 14 15 都是从 select count(* ) from 表 where 字段= i 得到
i从1到4 做循环
select sum(case when 字段=1 then 1 else 0),
sum(case when 字段=2 then 1 else 0),
sum(case when 字段=3 then 1 else 0),
sum(case when 字段=4 then 1 else 0)
from 表
确定的循环次数,而且只有4次,不用循环都可以了追问
问题我简化了。循环会有N次。每10次结果组成一条记录插入临时表。
追答那你还是循环吧,
declare @fint int
set @fint=0
insert into #temp
select sum(case when 字段=@fint+1 then 1 else 0),
sum(case when 字段=@fint+2 then 1 else 0),
sum(case when 字段=@fint+3 then 1 else 0),
sum(case when 字段=@fint+4 then 1 else 0)--一直加到10
from 表
set @fint=@fint+10
set @fint=1
declare @fsum int
set @fsum=4
while @fint<=@fsum
begin
--自行添加需要语句
set @fint=@fint+1
end追问
谢谢。不过我是想知道,当循环查询( select count(* ) from 表 where 字段=@ i )的结果是 临时表的数据项时候(table[i][J])怎么插入数据
追答没明白你问什么
追问插入数据 会是一条记录的形式插入。现在这一条记录 需要做N次循环查询才能得到。所以怎么插入数据??对照原始问题看下哈
追答declare @fstrtemp char(100)
declare @fstr char(1000)
declare @fint int
set @fint=1
declare @fsum int
set @fsum=4
while @fint<=@fsum
begin
set @fstrtemp=(select rtrim(@fstrtemp)+(select rtrim(cast(count(* ) as char(10)))
from 表 where 字段=@fint)+',')
set @fint=@fint+1
end
set @fstr=(select 'insert into tablename select '+left(rtrim(@fstrtemp),len(rtrim(@fstrtemp))-1))
exec(@fstr)
--类似这种,可以把这些全部写入@fstr,然后执行,相当于拼sql就可以了
SQL查询遍历数据方法一 [ 临时表 + While循环]
以下以SQL Server 2000中的NorthWind数据库中的Customers表为例,
用 临时表 + While循环 的方法, 对Customers表中的CompanyName列进行遍历
create table #temp
(
id int identity(1,1),
customer nvarchar(50)
)
declare @customer nvarchar(50)
declare @n int
declare @rows int
select @n=1
insert #temp(customer) select distinct companyname from customers
select @rows = @@rowcount
while @n <= @rows
begin
select @customer = companyname
from customers
where companyname=(select customer from #temp where id = @n)
order by companyname desc
print(@customer)
select @n = @n + 1
end
运行后, 输出结果如下:
(所影响的行数为 91 行)
Alfreds Futterkiste
Ana Trujillo Emparedados y helados
Antonio Moreno Taquería
Around the Horn
Berglunds snabbk?p
Blauer See Delikatessen
Blondesddsl père et fils
Bólido Comidas preparadas
Bon app‘
Bottom-Dollar Markets
B‘s Beverages
Cactus Comidas para llevar
Centro comercial Moctezuma
Chop-suey Chinese
Comércio Mineiro
Consolidated Holdings
Die Wandernde Kuh
Drachenblut Delikatessen
Du monde entier
Eastern Connection
Ernst Handel
Familia Arquibaldo
FISSA Fabrica Inter. Salchichas S.A.
Folies gourmandes
Folk och f? HB
France restauration
Franchi S.p.A.
Frankenversand
Furia Bacalhau e Frutos do Mar
Galería del gastrónomo
Godos Cocina Típica
Gourmet Lanchonetes
Great Lakes Food Market
GROSELLA-Restaurante
...... (以下略) ..................................
以上是关于SQL用循环查询的结果 建临时表的主要内容,如果未能解决你的问题,请参考以下文章