- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用游标实现体检人员检查检验数据更新
利用游标实现体检人员检查检验数据更新
【摘要】:在SQLSERVER数据库中,当需要对某一单位体检人员结果集中的记录逐一地读取并完成更新检查检验数据时,使用select语句完成十分困难,而游标则提供了完成对一个结果集进行逐行处理的能力。
【关键词】SELECT;CURSOR游标 ;结果集;体检;检查检验
一、问题提出
我院的体检系统由于上线时间较早,体检人员的体检结果导出功能方面功能不足,因此当有些查体单位需要我们提供该单位所有人员的检查、检验等数据时,导致这些数据往往无法直接提供或提供这些数据十分麻烦。
二、解决思路
由于我院体检人员的检查、检验数据在数据库中是一个项目名称对应一个结果并以一条记录形式存储的,而体检单位要求在一张电子表格中要包含所有体检人员的所有的检查、检验项目结果,于是在编写存储过程中,当检索、更新的数据是一条记录时???使用select 、update语句可以实现,但是现在需要从体检人员结果集中逐一地读取一条记录并更新,那么使用select语句完成十分困难。通过分析研究,发现利用游标可以方便实现。
什么游标(CURSOR)?其作用是什么?
游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。我们知道关系数据库管理系统实质是面向集合的,在SQLSERVER中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中,因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力。
每一个游标必须有四个组成部分,这四个部分必须符合下面的顺序:①DECLARE 游标②OPEN 游标③FETCH 信息④CLOSE 或DEALLOCATE 游标。
三、具体实现步骤:
1、生成一个包含体检人员的基本信息字段和所有检查、检验项目字段的空数据表。
体检人员的基本信息字段包括如体检编号、姓名、性别,体检时间等;检查项目字段分别包括检查部位和检查结果,如放射、超声、心电图等;检验项目字段包括总胆红素、直接胆红素、间接胆红素等57个项目。
由于每个检查、检验项目在数据库是以一个项目名称对应一个结果并以一条记录的形式保存,因此为生成所有项目字段,首先通过select语句检索出所有项目名称记录并保存到excel中,利用excel的转置功能生成包含所有字段空表,再将该表导入到数据库中,最后生成空的、完整的数据表。
2、将体检人员基本信息插入到dyjj_jcjy中。
insert into dyjj_jcjy(tjbh,ryxh,hzxm,sex,kstjsj)
select a.tjbh,a.xh ryxh,b.hzxm,b.sex,substring(a.kstjsj,1,8)
from TJ_TJRYK a,SF_BRXXK b
WHERE a.tdxh=2623and a.tjbh=b.blhand a.jlzt=3
order by tjbh
3、通过jc_up_cursor游标将检查结果插入(通过逐条取’ryxh’结果集来更新对应数据)
DECLARE @ryxh ut_xh12
DECLARE jc_up_cursor CURSOR FOR
SELECT ryxh FROM dyjj_jcjy
ORDER BY tjbh
OPEN jc_up_cursor
FETCH NEXT FROM jc_up_cursor into @ryxh
WHILE @@FETCH_STATUS = 0
BEGIN
---心电图
update dyjj_jcjy set xdtjcbw=-----部位
(select top 1 xmjg from SF_JCJGK where bgdh=(select bgdh FROM TJ_TJSFMXK where ryxh=@ryxh and bglx=XDT)
and xmdm=bworder by xh desc)
where ryxh=@ryxh
update dyjj_jcjy set xdtjcsj= -----结果
(select top 1 xmjg from SF_JCJGK where bgdh=(select bgdh FROM TJ_TJSFMXK where ryxh=@ryxh and bglx=XDT)
and xmdm=jcjlord
您可能关注的文档
最近下载
- 《七巧板》完整版教学课件.pptx VIP
- 定时交通灯控制设计.pdf VIP
- 浙大中控DCS系统操作规程.doc VIP
- 学校家长安全责任书.docx VIP
- 北师大版小学数学六年级上册第二单元 分数混合运算 基础测试题.doc VIP
- 2025至2030中国食用油行业运营态势与投资前景调查研究报告.docx VIP
- 10.3 合同的变更、转让、解除和终止(政策与法律法规 第7版).pptx VIP
- 儿童肺炎支原体肺炎诊疗指南2025年版解读PPT课件.pptx VIP
- 深圳初一数学下学期期中模拟测试题(带答案).pdf VIP
- 2023年春国开(甘肃)《个人理财》形考任务1-4题库.docx
文档评论(0)