当前位置:首页 » 编程语言 » sql循环查询

sql循环查询

发布时间: 2022-01-09 14:03:49

1. 怎样在sqlServer中将查询的结果循环。

一种是游标,不过表数据量特别大的时候不建议使用,对性能有影响,好像不支持索引。
或者
使用临时表加while循环来处理。

2. sql 循环查询

MSSQL 数据库下实现:

CREATETABLE#TEMP(单号INT,价格FLOAT)
INSERTINTO#TEMPVALUES(2,50)
INSERTINTO#TEMPVALUES(1,50)
INSERTINTO#TEMPVALUES(3,60)
INSERTINTO#TEMPVALUES(4,60)
INSERTINTO#TEMPVALUES(7,60)
INSERTINTO#TEMPVALUES(8,60)

DECLARE@REFIDINT
,@ORDERIDVARCHAR(30)
,@JIAGEVARCHAR(100)
SELECTREFID=IDENTITY(INT,1,1),DealFlg=0,单号,价格
INTO#Temp_Lists
FROM#TEMP

SELECT@REFID=MIN(REFID)FROM#Temp_ListsWHEREDealFlg=0
CREATETABLE#TEMP1(单号VARCHAR(100),价格FLOAT)
DECLARE@TEMPDANHAOVARCHAR
WHILE@REFIDISNOTNULL
BEGIN
SELECT@ORDERID=单号,@JIAGE=价格FROM#Temp_ListsWHEREREFID=@REFID

IFEXISTS(SELECT价格FROM#TEMP1WHERE价格=@JIAGE)
BEGIN
SELECT@TEMPDANHAO=单号FROM#TEMPWHERE单号=@ORDERID
PRINT@ORDERID
UPDATE#TEMP1SET单号=convert(varchar(10),单号)+','+@TEMPDANHAOWHERE价格=@JIAGE
END
ELSE
BEGIN
INSERTINTO#TEMP1SELECT*FROM#TEMPWHERE单号=@ORDERID
END

UPDATE#Temp_ListsSETDealFlg=1WHEREREFID=@REFID
SELECT@REFID=MIN(REFID)FROM#Temp_ListsWHEREDealFlg=0ANDREFID>@REFID

END
SELECT*FROM#TEMP1
DROPTABLE#TEMP1
DROPTABLE#Temp_Lists
DROPTABLE#TEMP

3. 如何用SQL循环查询语句

oracle
:
begin
for
a
in
(select
*
from
emp)
loop
...
end
loop;
end;

4. --SQL循环查询表

单个表的循环都做出来了,多表也一样啊。
首先,去sysobjects表里count(*)得出有多少个符合规则的用户表,然后用while语句控制循环次数.
同时,把所有符合规则的表,放到一个临时表里,比如#TEMP表了。然后就可以利用游标读取表名到变量中了.有了表名,那么把你上面那堆代码复制过去,简单改下,就可以套在while循环了。
唯一需要掌握的,就是对游标的使用。以你上面的SQL功底,应该很容易理解。

5. sql语句怎么循环查询

selectf1fromtable1的结果集做为查询条件循环查询。
如:
set@a=selectf1fromtable1
foreach(@a)
{
select*fromtable2
wheref2=@a
}

6. sql语句 条件循环查询

补充:
按照你的意思改了一下,把找出的所有记录中,没有子结点(也就是叶子)的记录显示出来。

select * into #tmp from (
(select * from ywb_zd where id=6)
union all
(select * from ywb_zd where parentID in (select id from ywb_zd where id=6))
union all
(select * from ywb_zd where parentID in (select id from ywb_zd where parentID in (select id from ywb_zd where id=6)))
union all
(select * from ywb_zd where parentID in (select id from ywb_zd where parentID in (select id from ywb_zd where parentID in (select id from ywb_zd where id=6))))
)x
select * from #tmp a where not exists(select * from #tmp where parentID=a.id)
drop table #tmp

7. sql 条件 循环 查询

selectt1.日期,max(t2.价格)最高价from表At1
innerjoin表2t2ont2.日期>t1.日期andt2.日期<=t1.日期+10
groupbyt1.日期
wheret1.价格>10

8. SQL 循环查100多个表

楼主是不是想要查询列表中所有表的记录条数,这100多个表结构一样的吧??
如果是,那么好办了。
首先说一下你可以小睡一会儿的原因:因为每次你都去open一次连接,关闭一次连接,想象一下吧,连续打开关闭100多次数据库连接,别说查询了,光打开关闭连接就够你睡一会儿了。

你需要做的是,把这100多条sql语句联合起来,然后用union:
select distinct 村,乡镇 from 文本1
union
select distinct 村,乡镇 from 文本2
.......
然后在最外面加一个select显示你要的结果,这样就是一条sql语句,只是union多了一些,但是无伤大雅,只要你的表数据不是几十万那样的。。。

如果不是上述问题,那就得研究一下脚本优化的问题了。

9. sql server 循环查询数据

Create Table A
(
Aa int
)

insert into A values(2)

Declare @cnt int
Set @cnt=10;
/*
要重复显示的次数
Sql 2005以上版本
*/
with t(Aa,Cnt)
As
(
Select Aa,1 As Cnt From A
Union All
Select Aa,cnt+1 As Cnt From t Where cnt<@cnt
)
Select Aa From t

Drop Table A

热点内容
linux软件安装包 发布:2024-12-28 20:54:05 浏览:130
编程回消息 发布:2024-12-28 20:52:15 浏览:927
bat脚本卸载软件 发布:2024-12-28 20:17:14 浏览:742
sqlserver的ip 发布:2024-12-28 20:16:58 浏览:358
c语言模块 发布:2024-12-28 20:10:29 浏览:516
安卓蚂蚁怎么唱 发布:2024-12-28 20:00:21 浏览:163
编程课必须 发布:2024-12-28 19:58:49 浏览:782
怎么合理配置家庭资产 发布:2024-12-28 19:57:10 浏览:317
编译pl2303安卓驱动 发布:2024-12-28 19:53:09 浏览:365
怎么看到手机wifi密码 发布:2024-12-28 19:52:19 浏览:424