问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql 循环查询

发布网友 发布时间:2022-04-09 04:12

我来回答

5个回答

热心网友 时间:2022-04-09 05:41

MSSQL 数据库下实现:

CREATE TABLE #TEMP (单号 INT, 价格 FLOAT)
INSERT INTO #TEMP VALUES(2,50)
INSERT INTO #TEMP VALUES(1,50)
INSERT INTO #TEMP VALUES(3,60)
INSERT INTO #TEMP VALUES(4,60)
INSERT INTO #TEMP VALUES(7,60)
INSERT INTO #TEMP VALUES(8,60)

DECLARE   @REFID        INT
        , @ORDERID        VARCHAR(30)
        , @JIAGE VARCHAR(100)
SELECT  REFID = IDENTITY(INT , 1, 1), DealFlg = 0, 单号,价格
INTO #Temp_Lists
FROM #TEMP

SELECT @REFID = MIN(REFID) FROM #Temp_Lists WHERE DealFlg = 0
CREATE TABLE #TEMP1 (单号 VARCHAR(100), 价格 FLOAT)
DECLARE @TEMPDANHAO VARCHAR
WHILE @REFID IS NOT NULL
BEGIN
   SELECT @ORDERID = 单号,@JIAGE = 价格 FROM  #Temp_Lists WHERE REFID = @REFID

   IF EXISTS(SELECT 价格 FROM #TEMP1 WHERE 价格 = @JIAGE)
   BEGIN
    SELECT @TEMPDANHAO = 单号 FROM #TEMP  WHERE 单号 = @ORDERID
    PRINT @ORDERID
    UPDATE #TEMP1 SET 单号 = convert(varchar(10),单号)+ ',' + @TEMPDANHAO WHERE 价格 = @JIAGE
   END
   ELSE
   BEGIN
     INSERT INTO #TEMP1 SELECT * FROM #TEMP  WHERE 单号 = @ORDERID
   END
    
    UPDATE #Temp_Lists SET DealFlg = 1 WHERE REFID = @REFID
    SELECT @REFID = MIN(REFID) FROM #Temp_Lists WHERE DealFlg = 0 AND REFID > @REFID

END
SELECT * FROM #TEMP1
DROP TABLE #TEMP1
DROP TABLE #Temp_Lists
DROP TABLE #TEMP

热心网友 时间:2022-04-09 06:59

这个可以借助函数来实现, 实现一个函数, 参数为价格, 返回值为字串, 就是单号的连接; 然后在查询中调用该函数获得单号串.

热心网友 时间:2022-04-09 08:34

if object_id('fun_SumStr') > 0
drop function fun_SumStr
go

create function fun_SumStr(@Col1 nchar(5))
returns varchar(500)
as
begin
declare @S varchar(500)
select @S=isnull(@S,'') + Cast(OrderId as varchar(50)) from Orders where CustomerID = @Col1
return @S
end
go

Select distinct CustomerID,Col2 = dbo.fun_SumStr(CustomerID) from Orders
go

// 列名和表名换成 你自己的
// 还可以用游标实现
if object_id('temp') > 0
drop table temp
go

create table temp
(
col1 varchar(500),
col2 nchar(5)
)
go

declare @test_Cursor CURSOR
set @test_Cursor = cursor for
select CustomerID from orders group by CustomerID

open @test_Cursor
declare @chrId varchar(500)
declare @customerId nchar(5)
while @@FETCH_STATUS = 0
begin
fetch next from @test_Cursor into @customerId
set @chrId = ''
select @chrId = @chrId + cast(OrderID as varchar(50)) from orders where CustomerID = @customerId
insert into temp values(@chrId,@customerId)
end
go

select * from temp
go

热心网友 时间:2022-04-09 10:25

用临时表,查一次把处理过的删掉,再查,一直到数据清空?

热心网友 时间:2022-04-09 12:33

能先告诉我你用的是什么数据库吗?
SQL是通用的,但各数据库的函数不是通用的。
是否可以解决您的问题?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
信息系统集成资质几级最高 计算机信息系统集成企业资质等级评定条件计算机信息系统集成企业资质等 ... 计算机信息系统集成企业资质等级评定条件实施细则一级资质 win10电脑密码错误win10开机密码错误 windows怎么更换密码错误 电脑没设置密码老是显示密码不正确电脑密码一直显示输入不正确 我把苹果手机系统 。 一更新 。 卡着了 。 然后就这样了 。 这出现... 我iphone想更新到9,是直接在手机按的更新,但是中途变成了这样 为什么有时早上4点多觉胸一下感觉很累的像给人吓一跳似 睡觉醒来时觉得胸部难受有点累是怎么回事 幻想情侣中:一共有多少首插曲、都是什么? 一清二白歇后语上一句是什么? 一个泳池,长30米宽15米。是多少立方,多少吨水。怎么计算? 《千家诗》简介及内容 一清二白上一句是什么? 千家诗的主要内容 韩剧《幻想情侣》里的插曲是那首? 如何识别这种文字是什么国家都语言文字? 创文奖励计入什么科目? 鹅黄柳绿成金缕古诗原文是什么? 《幻想情侣》里面的主题曲叫什么 识别阿拉伯语? 求 千家诗 全文及注释 《幻想情侣》中所有的歌曲名分别是哪些? 请求把图片中的文字扫描出来!特别是那个阿拉伯语 《千家诗》的全部有哪些 半生半熟宣纸 怎么用 半生半熟的宣纸写字不够润怎么办 皮宣和半生半熟宣的区别 怎么分辨生熟宣纸 千家诗适合几年级学生看 ABBYY.FineReader10能识别阿拉伯语吗?或者谁懂阿拉伯语帮我把这段文字打出来下吧 求,<幻想情侣>中的所有歌曲! 一清二白的前一句是什么 千家诗一共有多少首诗? 跪求关于佛山创文的作文(要一件事说明) 千家诗有哪些 幻想情侣里出现的歌曲有哪些? 软件的,研究技术报告怎么写?急 阿拉伯语文字是什么意思? 关于千家诗(山西古籍) 红酒配大葱下一句 跪求韩剧《幻想情侣》所有歌曲! 最是什么黄橘绿时的前一句是?千家诗里的 怎么在cdr文件里输入阿拉伯语啊,为什么拷进去的阿拉伯文字顺序都变了。 一清二白破折号小青拌豆腐什么意思? 50米*25米*2米高的泳池需要多少吨水 《千家诗》收录的是什么? 小葱拌豆腐的后面一句是什么 【阿拉伯语】请求各位大神帮忙翻译一下这一段阿拉伯语文字!