sql循環查詢
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