【问题标题】:can loop in cursor return to one result可以在游标中循环返回一个结果
【发布时间】:2022-08-08 23:07:08
【问题描述】:

我只是用光标练习。我想将所有表合并在一起。我希望你能明白我的目的。

DECLARE @dep NVARCHAR(max) = \'Computer Studies,Civil Engineering\'
declare @tmpTable table (
    Table_Name NVARCHAR(max)
    ,Count int
)
declare cur CURSOR FAST_FORWARD FOR
    SELECT * FROM dbo.DEPARTMENTS  
OPEN cur
FETCH NEXT FROM cur

WHILE @@FETCH_STATUS = 0
BEGIN
    SELECT * FROM dbo.DEPARTMENTS WHERE DepartmentName = @dep
    fetch next from cur
END

CLOSE cur
DEALLOCATE cur

标签: sql sql-server


【解决方案1】:

您可以使用临时来累积结果,例如

SET NOCOUNT ON
DECLARE @dep NVARCHAR(max) = 'Computer Studies,Civil Engineering'
declare @tmpTable table (
    Table_Name NVARCHAR(max)
    ,Count int
)
declare cur CURSOR FAST_FORWARD FOR
    SELECT * FROM dbo.DEPARTMENTS  

drop table if exists #results 
select * into #results from dbo.DEPARTMENTS where 1=0
OPEN cur
FETCH NEXT FROM cur

WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO #results
    SELECT * FROM dbo.DEPARTMENTS WHERE DepartmentName = @dep
    fetch next from cur
END

CLOSE cur
DEALLOCATE cur

select * from #results

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-15
    • 2013-10-27
    • 1970-01-01
    • 2018-06-05
    • 2014-10-26
    • 2021-09-24
    • 2013-12-18
    • 2020-05-06
    相关资源
    最近更新 更多