SQL语句中的循环

2023-11-06

SQL语句中的循环

SQL语句中的循环类似于foreach循环,可以循环遍历某个表并进行新增、修改和删除的操作。

SQL语句中的循环,使用SQL的游标来实现。

上示例:

declare @ID int;--声明变量(@名称 类型)
begin--开始
	print '示例'--输出
	declare a_test_main cursor for select ID from TableName1--查出需要循环的集合放到游标中
	open a_test_main;--打开游标
	while 1=1--开始循环
	begin--开始
		fetch next from a_test_main into @ID--赋值到变量中
		if(@@fetch_status!=0)break;--如果没有结果退出循环
		if not exists(select * from TableName2 where ID = @ID)--判断不存在数据
		begin--开始
			print '新增'--输出
			insert into TableName2 (ID)values(@ID)--不存在数据时执行(新增)
		end--结束
		if exists(select * from TableName3 where ID = @ID)--判断存在数据
		begin--开始
			print '修改'--输出
			update TableName3 set ID = 1 where ID = @ID--存在数据时执行(修改)
		end--结束
		if exists(select * from TableName4 where ID = @ID)--判断存在数据
		begin--开始
			print '删除'--输出
			delete from TableName4 where ID = @ID--存在数据时执行(删除)
		end--结束
	end--结束
	close a_test_main--关闭游标
	deallocate a_test_main--释放游标
end--结束

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL语句中的循环 的相关文章

  • 可以使用表通配符创建 sql 查询吗?

    这可能是一个简单的问题 但我无法在网上找到解决方案 任何帮助将不胜感激 我正在尝试在 PHP 中创建一个 SQL 查询 并希望以某种方式将通配符应用于 TABLE 过滤器 可能是这样的 select from table 但是 到目前为止我
  • SQL Server 2008R2 和创建 XML 文档

    论坛上的第一篇文章 因为我真的被这个问题困住了 以下查询正确地将有效的 XML 文档分配给 xTempXML 变量 类型为 xml 注 文档的长度 转换为varchar max 711 select xTempXML select Pres
  • 加密数据库字段的好方法?

    我被要求加密数据库中的各种数据库字段 问题是这些字段在读取后需要解密 我在用着Django and SQL Server 2005 有什么好主意吗 See 在 SQL Server 2005 数据库中使用对称加密 https web arc
  • 根据日期顺序排名

    我的数据如下 Heading Date A 2009 02 01 B 2009 02 03 c 2009 02 05 d 2009 02 06 e 2009 02 08 我需要如下排名 Heading Date Rank A 2009 02
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • 获取带有计数的不同记录

    我有一张桌子personid and msg列 personid msg 1 msg1 2 msg2 2 msg3 3 msg4 1 msg2 我想得到总计msg对于每个personid 我正在尝试这个查询 select distinct
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • 如何使用 BigQuery 有效地选择另一个表中匹配子字符串的记录?

    我有一个包含数百万个字符串的表 我想将其与包含大约两万个字符串的表进行匹配 如下所示 standardSQL SELECT record FROM record JOIN fragment ON record name LIKE CONCA
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • 如何从子查询 SQLite 接收两个值

    我是一个自学的 SQLite 新手 我有三个表 person pet person pet schema 是 CREATE TABLE person id INTEGER PRIMARY KEY first name TEXT last n
  • 如何获取日期时间字段的 UTC?

    我正在使用 MySQL 5 并且正在尝试将日期时间字段转换为 UTC TIMESTAMP 这是我所拥有的 但它不起作用 并且不确定我是否可以做到这一点 但有人可以告诉我我做错了什么吗 谢谢 我已经尝试过这个 SELECT UTC TIMES
  • Oracle SQL 分析查询 - 类似递归电子表格的运行总计

    我有以下数据 由A值 排序依据MM 月 The B列计算为GREATEST current value of A previous value of B 0 以类似电子表格的方式 我怎样才能计算B使用 SQL 查询 我尝试使用分析函数 但未
  • 在查询中创建临时变量

    我希望能够在查询中创建一个临时变量 而不是存储过程或函数 它不需要声明和设置 这样我在调用它时就不需要传递查询参数 正在努力朝这个方向努力 Select field1 tempvariable 2 2 newlycreatedfield t
  • 同一表中同一列的 SQL 完全外连接

    这可能更多的是一个设计问题 但我希望这在没有太多巫术的情况下是可能的 假设我有一个这样的表 SELECT FROM stuff id grp 1 a 2 a 3 a 1 b 2 b 4 b 我想要得到这样的东西 ID 按列分组 a id b
  • 如何使用单个查询对从另一个表检索的表列表进行 UNION?

    我有一个表 其中包含 PostgreSQL 中的表列表 id table 1 table1 2 table2 3 table3 我想从所有这些表的联合中进行选择 例如 伪代码 select from union select table f

随机推荐

  • 获取文件的绝对路径

    想要访问执行程序 exe 路径下的文件 有以下几个步骤 1 先通过函数GetModuleFileName获取执行程序的绝对路径 TCHAR szPath MAX PATH 0 GetModuleFileName NULL szPath MA
  • 4-3 嵌入法

    文章目录 4 3 嵌入法 基础知识 项目案例 动手练习 4 3 嵌入法 请参考 数据准备和特征工程 中的相关章节 调试如下代码 基础知识 import pandas as pd from sklearn model selection im
  • oracle 视图 其他用户,oracle创建视图中涉及到另外一个用户的表权限不足问题

    oracle创建视图中涉及到另外一个用户的表权限不足问题 在oracle中存储过程或者视图等对象创建时 如果涉及到另外一个用户的表 即使你已经grant dba了 也不行 必须显式地赋予查询权限 否则 你会发现在pl sql中可以执行语句
  • Linux mmap读/写触发共享文件页生命周期

    概述 Linux的mm内存子系统的核心功能就要要管理各种类型的page 确保能高效分配和释放 让物理内存得以最大化使用 初识内存系统往往关注的是page的申请和管理流程 容易忽略page的释放回收流程 其实理解mm中的内存回收和释放也是最核
  • 智能驾驶系统简介和测试要点分析

    智能驾驶系统是一种能够自主感知 决策和执行行驶任务的车辆控制系统 常见的智能驾驶系统包括 自动泊车系统 能够自动控制车辆完成泊车过程 包括寻找车位 转向 加速 制动等操作 自适应巡航系统 能够根据车速 车距和交通状况等因素自适应调整车速 并
  • react实现多选框切换样式逻辑

    import React Component from react class App extends Component constructor props super props this state checkboxItems con
  • time datetime模块 一篇精通

    time datetime python3中time模块的用法 导入 import time 查看time模块内置的能够使用的方法 print dir time 查看内置方法的说明 help time time method help ti
  • NVIDIA驱动安装

    需要去英伟达官网下载适合自己电脑的版本 nvidia网页可以自己测出你的电脑所需要的型号 首先Ctrl Alt F1进入字符界面 删除原有驱动版本 sudo apt get purge nvidia sudo apt get autorem
  • 执行.sh文件(shell脚本)的几种方式

    第一种 要进到shell脚本所在文件夹中 sh helloworld sh 第二种 要进到shell脚本所在文件夹中 bash helloworld sh 第三种 要进到shell脚本所在文件夹中 helloworld sh 第四种 hom
  • uniapp app以及小程序图片添加水印

    const ctx uni createCanvasContext myCanvas const ctx1 uni createCanvasContext myCanvas1 uni getImageInfo src this carInf
  • UiBot如何使用CSS Selector

    UiBot默认的数据抓取可以抓取整个表格 但是有时候我们并不想抓取整个表格 比方说 我们想将下图所有的头像复制到Excel里 这个时候我们无法使用数据抓取功能 因为我们并不是想抓取数据 而是要操作网页里的元素 将上图头像复制到Excel里的
  • Centos7 扩展系统磁盘大小

    Centos7扩展系统磁盘大小 系统盘大小不足 需要扩展系统盘大小 需要添加一块硬盘作为要使用的系统盘的扩展 我的是原来sda就有空间没有分配 所以不用单独再加磁盘了 直接使用sda的未分配的空间 如果是单独新增的一个磁盘例如 dev sd
  • Jenkins 联动 飞书 以签名校验方式 推送测试报告通知消息

    1 获取 飞书 Bot webhook 和 secret 2 python脚本 参考 Song Estelle 的文章 这里重写了部分代码 以签名校验方式发送通知 记得安装相关依赖 usr bin python3 encoding utf
  • Java 中的阻塞队列

    Java 中的阻塞队列 1 ArrayBlockingQueue 由数组结构组成的有界阻塞队列 2 LinkedBlockingQueue 由链表结构组成的有界阻塞队列 3 PriorityBlockingQueue 支持优先级排序的无界阻
  • Python 日期字符串和时间戳解析方法详解

    原文链接 https dreamhomes top posts 202103091919 html 由于从事智能运维AIOps相关的算法研究 因此日常接触的最多就是时间序列相关的数据 在不同场景下时间字符串表示的格式可能都不相同 因此本文记
  • 解决git pull 报错insufficient permission for adding an object to repository database .git/objects

    这个报错是没有 git objects文件的写入权限 可能是 git objects被root角色创建 等到别的角色去操作时就产生了权限问题 所以解决这个问题就要改 git objects的权限 chown R username group
  • Java学习之:异常及其处理方式

    文章目录 1 所有异常都继承 Throwable 类 2 分类 3 为什么要处理异常 4 异常处理格式 5 完整异常信息的取得 5 1 常见的异常 6 throws throw 关键字 6 1 throws 用在定义方法上 6 1 1 用在
  • R中重命名数据框列名小技巧

    R中重命名数据框列名 文章目录 前言 一 基础包names函数和索引 二 使用dplyr rename函数 前言 R语言中两种修改数据框列名的小方法 创建名为df的数据框 一 基础包names函数和索引 将第二列名score修改为popul
  • 深入理解Android之Gradle

    转自 http blog csdn net innost article details 48228651 深入理解Android之Gradle 格式更加精美的PDF版请到 https pan baidu com s 1boG2cLD下载
  • SQL语句中的循环

    SQL语句中的循环 SQL语句中的循环类似于foreach循环 可以循环遍历某个表并进行新增 修改和删除的操作 SQL语句中的循环 使用SQL的游标来实现 上示例 declare ID int 声明变量 名称 类型 begin 开始 pri