关于游标问题,急急。

5027527 2002-05-22 11:42:19
DECLARE abc CURSOR FOR
SELECT * FROM GoodsSpec where commodityno ='0010000101' order by PackRate

OPEN abc

FETCH NEXT FROM abc
WHILE (@@FETCH_STATUS = 0)
FETCH NEXT FROM abc

CLOSE abc
DEALLOCATE abc
GO

如上所示,虽然可以列出游标所在行,但我如何根据当前游标而取得每一个字段的值呢?
比如我要根据游标实现类似的功能:
SELECT @aa=PackRate FROM GoodsSpec where commodityno ='0010000101' order by PackRate

谢谢。
...全文
95 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
5027527 2002-05-22
  • 打赏
  • 举报
回复
to tj_dns(愉快的登山者) :也许我的意思表达不够明确,是这样的:

我要将表GoodsSpec 的每条记录的字段PackRate (类型是varchar(255))的值接起来,如:第一条为“abc”,第二条是“DEF”...
这样,加起来时,就是:“abc”+ “DEF”+ ...
所以,我得要通过游标取得具体每一条的PackRate的值,然后再加起来。
问题就是如何通用游标取得每条记录的PackRate的值。谢谢。


kaikaihe 2002-05-22
  • 打赏
  • 举报
回复
同意楼上
愉快的登山者 2002-05-22
  • 打赏
  • 举报
回复
DECLARE abc CURSOR FOR
SELECT PackRate FROM GoodsSpec where commodityno ='0010000101' order by PackRate

OPEN abc

FETCH NEXT FROM abc into @aa
WHILE (@@FETCH_STATUS = 0)
FETCH NEXT FROM abc into @aa

CLOSE abc
DEALLOCATE abc
GO
hh_fwhy 2002-05-22
  • 打赏
  • 举报
回复
我给你一段程序,我改写的系统存储过程,你可以直接用,不过这个东西要用到存储过程,中间提到的其他东西,你可以忽略:
获得字段名和特定值的存储过程:

/****** Object: Stored Procedure dbo.dt_column Script Date: 2002-4-25 16:39:16 ******/

/****** Object: Stored Procedure dbo.dt_column Script Date: 2002-4-24 13:35:26 ******/
CREATE PROCEDURE dt_column
@table_name nvarchar(384),
@count int output ,
@cur_column CURSOR VARYING OUTPUT

AS
DECLARE @full_table_name nvarchar(769)
DECLARE @table_id int
DECLARE @table_owner nvarchar(384),
@table_qualifier sysname ,
@column_name nvarchar(384) ,
@ODBCVer int,
@name varchar(50)
SET @table_owner = NULL
SET @table_qualifier = NULL
SET @column_name = NULL
SET @ODBCVer = 2

if @ODBCVer <> 3
select @ODBCVer = 2
if @column_name is null /* If column name not supplied, match all */
select @column_name = '%'
if @table_qualifier is not null
begin
if db_name() <> @table_qualifier
begin /* If qualifier doesn't match current database */
raiserror (15250, -1,-1)
return
end
end
if @table_name is null
begin /* If table name not supplied, match all */
select @table_name = '%'
end
if @table_owner is null
begin /* If unqualified table name */
SELECT @full_table_name = quotename(@table_name)
end
else
begin /* Qualified table name */
if @table_owner = ''
begin /* If empty owner name */
SELECT @full_table_name = quotename(@table_owner)
end
else
begin
SELECT @full_table_name = quotename(@table_owner) +
'.' + quotename(@table_name)
end
end

/* Get Object ID */
SELECT @table_id = object_id(@full_table_name)
if ((isnull(charindex('%', @full_table_name),0) = 0) and
(isnull(charindex('[', @table_name),0) = 0) and
(isnull(charindex('[', @table_owner),0) = 0) and
(isnull(charindex('_', @full_table_name),0) = 0) and
@table_id <> 0)
begin
set @cur_column = CURSOR FORWARD_ONLY STATIC
FOR
/* this block is for the case where there is no pattern
matching required for the table name */
SELECT
convert(sysname,c.name)
FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.id = @table_id
AND c.id = o.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
AND o.type <> 'P'
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name, 'IsIdentity'),0)
AND c.xusertype = t.xusertype
AND c.name like @column_name
end
else
begin
/* this block is for the case where there IS pattern
matching done on the table name */
if @table_owner is null /* If owner not supplied, match all */
select @table_owner = '%'

set @cur_column = CURSOR SCROLL --FORWARD_ONLY STATIC
FOR
SELECT
convert(sysname,c.name)
FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name
AND user_name(o.uid) like @table_owner
AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
AND o.type <> 'P'
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name, 'IsIdentity'),0)
AND c.xusertype = t.xusertype
AND c.name like @column_name
end

SELECT
@count = count(c.name)
FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name
AND user_name(o.uid) like @table_owner
AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null or d.ODBCVer = @ODBCVer)
AND o.type <> 'P'
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name, 'IsIdentity'),0)
AND c.xusertype = t.xusertype
AND c.name like @column_name

OPEN @cur_column


GO


执行存储过程的方法段:
--设置光标cur_col,对表中每个字段进行跟踪操作
DECLARE @cur_col CURSOR
EXEC dt_column @tableName,@col_count output ,@cur_column = @cur_col output
FETCH @cur_col into @column --将初值赋给字段变量
然后你用循环控制就可以了
大气污染是影响公众健康与生态环境的重要问题,精准的空气质量时空预测与污染源贡献度量化是精准治污的关键支撑。针对现有研究多源融合不充分、时空关联刻画不足、预测与源解析割裂三方面缺陷,本文设计实现了城市空气质量时空预测与污染源贡献度分析系统,融合监测、气象、工业排放与交通四类数据,构建基于时空注意力的LSTM(STAM-LSTM)预测模型与基于正定矩阵因子分解(PMF)的源解析模型,形成数据融合-特征工程-预测-源解析-可视化闭环。 系统实现四类数据时空对齐与融合,构建时序与空间邻域特征,以普通克里金插值生成1km网格浓度场;STAM-LSTM引入时空注意力自适应学习站点间污染传输时变权重,以72小时输入预测未来24小时逐小时PM2.5浓度;PMF识别交通、工业、燃煤、扬尘与二次生成五个源因子,量化各源全年贡献度并分析时空演变。 实验表明:STAM-LSTM预测RMSE 24.6、MAE 17.8、R² 0.88,相对LSTM基线(30.2)提升18.5%;普通克里金插值误差8.9,优于反距离加权(11.4);源解析显示交通源28.4%、工业源23.1%、燃煤源19.6%为主要贡献源,冬季燃煤源升至27.3%、早高峰交通源达34.8%,下风向工业源贡献高出上风向8~12个百分点;减排情景显示交通源减排20%可使年均PM2.5下降5.7%,与源贡献度排序一致。 系统按五模块14组件实现,功能测试16项用例全部通过,为大气污染预警、源管控与减排政策制定提供了决策依据。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术与理论 第3章 系统需求分析 第4章 系统总体设计 第5章 系统详细设计与实现 第6章 系统测试与分析 第7章 总结与展望 参考文献 附件-实现指南
基于iTransformer-BiGRU-KAN多模型融合的滚动轴承剩余寿命预测研究(Python代码实现)内容概要:本文提出了一种基于iTransformer-BiGRU-KAN多模型融合的滚动轴承剩余寿命预测方法,旨在通过结合多种先进深度学习模型的优势,提升在复杂工况下的预测精度与鲁棒性。该方法利用iTransformer捕捉长期时间序列中的全局依赖关系,通过BiGRU模型提取双向时序特征,最后引入KAN(Kernel Attention Network)增强非线性映射与关键特征的自适应加权能力,实现对轴承退化过程的精准建模。文中详细介绍了模型架构设计、训练流程及在公开数据集上的实验验证,结果表明该融合模型相比单一模型在预测精度和稳定性方面均有显著提升。; 适合人群:具备一定机器学习与深度学习基础,从事设备故障诊断、工业大数据分析或智能运维相关领域的研究人员及工程技术人员,尤其适合研究生及以上学历或有相关项目经验的专业人员。; 使用场景及目标:①应用于工业设备状态监测与预测性维护系统中,实现对滚动轴承等关键部件剩余寿命的精准预测;②为复杂时间序列回归任务提供多模型融合的设计思路与技术参考;③推动深度学习在智能制造与工业物联网领域的落地应用。; 阅读建议:建议读者结合Python代码实现部分,深入理解各子模型的接口设计与融合逻辑,重点关注特征融合机制与注意力权重的可视化分析,以便在实际项目中灵活调整与优化模型结构。

34,876

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧