使用列级 WHERE 子句更新多个列中的所有 SQL NULL 值?

2023-11-26

我们有一个包含大量宽表(每个表 40-80 列)的数据库,并且刚刚发现一个错误,该错误将 NULL 值引入到大约 500 条记录中。 NULL 值可以出现在任何列中(所有列都是整数列,请参见下图),但这些 NULL 值会导致我们的报告系统之一出现无法轻松更改的问题。我们需要将 NULL 值替换为特定的静态值(在本例中为 99),但由于必须针对超过 250 个不同的列逐列进行此更改,因此我宁愿不编写单独的 TSQL 脚本来更新每一列一个。

我的大脑现在太混乱了,无法想出一个聪明的解决方案,所以我的问题是如何使用简单且可读的 SQL 查询对表(或者更好的是多个表)上的所有列执行此任务。我可以使用一系列很容易地隔离记录WHERE (Answer_1 IS NULL) OR (Answer_2 IS NULL) OR ...或者甚至通过每个表的 AdministrationID 编号,但是当更新时此技巧将不起作用,因为 where 子句是每行而不是每列。有什么建议吗?

Here is a sample query showing a few of the records from 4 different tables: Sample


对此没有任何约定——如果您只想处理相应列为 NULL 的记录,则需要使用:

WHERE Answer_1 IS NULL 
   OR Answer_2 IS NULL 
   OR ...

但您可以在 UPDATE 语句中使用它:

UPDATE YOUR_TABLE
   SET col1 = COALESCE(col1, 99),
       col2 = COALESCE(col2, 99),
       col3 = ...

其逻辑是,仅当列值为 NULL 时,该值才会更新为 99,因为 COALESCE 的工作原理是返回第一个非 NULL 值(处理从左到右提供的列表)。

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

使用列级 WHERE 子句更新多个列中的所有 SQL NULL 值? 的相关文章

  • SQL Server 相当于 MySQL 的 USING

    在 MySQL 中 当您连接不同表中具有相同名称的列时 可以在连接中使用关键字 USING 例如 这些查询产生相同的结果 SELECT FROM user INNER JOIN perm USING uid SELECT FROM user
  • 消息 102,级别 15,状态 1,第 1 行“ ”附近的语法不正确

    我试图从临时表中查询 但不断收到此消息 Msg 102 Level 15 State 1 Line 1 Incorrect syntax near 有人能告诉我问题是什么吗 是因为要转换吗 查询是 select compid 2 conve
  • SQL Server 差异工具

    在一个团队中工作时 人们很容易修改开发 SQL Server 表并忘记它 或者准备部署更改但必须等待部署 这使得我们的开发表和活动表不一致 从而在推送存储过程时导致问题 是否有一个工具可以让我输入 SPROC 名称并让它检查开发数据库和实时
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 将多行合并为一行并根据行数附加列

    我正在尝试将同一个表的多行合并为一个 我有一个像这样的示例表 Col1 Col2 Col3 Col4 Col5 Col6 1 BH1 CB 12 CC CC Conveyor Mal 1 BH1 CB 104 ZC ZC Full Emp
  • Oracle:如果表存在

    我正在为 Oracle 数据库编写一些迁移脚本 并希望 Oracle 有类似于 MySQL 的东西IF EXISTS构造 具体来说 每当我想删除 MySQL 中的表时 我都会执行类似的操作 DROP TABLE IF EXISTS tabl
  • sql查询中的truncate和delete命令有什么区别[重复]

    这个问题在这里已经有答案了 可能的重复 SQL中TRUNCATE和DELETE有什么区别 https stackoverflow com questions 139630 whats the difference between trunc
  • 案例陈述以确定我是否应该结合

    我目前想做某种条件联合 给出以下示例 SELECT age name FROM users UNION SELECT 25 AS age Betty AS name 假设我只想在 用户 计数 gt 2 时合并第二个语句 否则不合并两者 总之
  • SQLSTATE[HY000] [2002] 资源暂时不可用 - mysql - innodb 和 pdo

    在我的错误日志中得到大量结果 如下所列 数据库中的所有表都是 innodb 并且就与这些表的任何交互而言 一切都是带有准备好的语句的 pdo 正如我所说 所有错误几乎与下面列出的错误相同 但发生在几个不同的页面上 无论页面如何 错误行始终指
  • T-sql、刻度、时间戳

    是否有可能在 t sql 中获得像 DateTime Ticks 这样的 C 内容 感谢帮助 您不太可能从 SQL 中获得与 DateTime Ticks 相同的精度 因为 SQL 不能以那么高的精度表达时间 SQL Server 只存储大
  • PHP DBlib PDO 问题

    我正在尝试通过 php 连接到 MSSQL 服务器 但我的 pdo 连接给我带来了困难和我不太理解的错误 我在下面粘贴的代码一周前运行得很好 突然间它就停止了 没有任何人进行任何更改 我仍然可以连接到服务器并直接从命令行运行查询 但我在 p
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • 在 C# 中将平面数据库结果集转换为分层对象集合

    我有一个数据库查询 它以平面格式返回分层数据 例如客户 订单和订单项目 只是一个例子 我的数据不同 如何将其转换为分层对象集合 即客户对象的集合 其中每个客户对象都有订单对象的集合 每个订单对象都有订单项目对象的集合 这只是循环遍历每个项目
  • 循环表行的最佳方法是什么?

    在 SQL Server 2008 R2 中循环数据库表行的最佳方法是什么 我正在寻找与编写 foreach 非常相似并且性能相当的东西 Thanks 最佳性能 不要循环表的行 使用基于集合的操作 Here s 关于 为什么 的良好讨论 h
  • SQL Server递归查询显示父级路径

    我正在使用 SQL Server 语句并有一张表 例如 item value parentItem 1 2test 2 2 3test 3 3 4test 4 5 1test 1 6 3test 3 7 2test 2 我想使用 SQL S
  • ActiveRecord 嵌套 SELECT——我可以在没有手动 SQL 的情况下完成它吗?

    我有一张桌子 上面有 除其他外 一个名字和一个等级 我想返回所有唯一名称的集合 但对于返回的每个名称 我想选择排名最高的行 这很简单 有两个嵌套的 SELECT 语句 SELECT FROM SELECT FROM foo ORDER BY
  • 自动创建n列表

    我想在一行中将 236 个 int 值存储到 sql 中 现在我必须声明该表 但我不想输入 236 倍的列名 列名应该是 BYTE001 BYTE002 或其他前缀 如 BYTE B INT 可以自动生成ColumnNames吗 我尝试以下
  • 使用 t-sql 检索已过滤的存储过程列表

    我正在尝试获取 t sql 中的存储过程列表 我正在使用该行 exec sys sp stored procedures 我想过滤回结果 所以我只获取用户创建的存储过程 我想过滤掉 sp dt fn xp 以及其他所有我不感兴趣的系统存储过
  • 最佳实践 - 存储过程日志记录

    如果您有一个长时间运行的 SP 您会以某种方式记录其操作还是只是等待此消息 命令成功完成 我认为 关于这个主题可以有很多解决方案 但是有没有最佳实践 一个经常使用的简单解决方案 EDIT 我发现了一个关于这个主题的有趣链接 http web
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T

随机推荐

  • 从函数返回的记录具有串联的列

    我有一个表 用于存储帐户随时间的变化 我需要将其与其他两个表连接起来 以创建特定日期的一些记录 如果这些记录尚不存在 为了让事情变得更简单 我希望 我将返回正确历史数据的查询封装到一个接受帐户 ID 和日期的函数中 如果我执行 Select
  • 使用 GSON 反序列化通用类型

    我在 Android 应用程序 使用 Gson 库 中实现 Json 反序列化时遇到一些问题 我上过这样的课 public class MyJson
  • 二维 np.digitize

    我有二维数据 并且有一堆用 生成的二维箱scipy stats binned statistic 2d 对于每个数据点 我想要它占用的 bin 的索引 这正是np digitize是用于 但据我所知 它只处理一维数据 Thisstackex
  • BeautifulSoup,但是对于CSS?

    BeautifulSoup 解析 HTML 并提供各种在 HTML 中操作和搜索的方法 CSS 有类似的东西吗 具体来说 我想知道给定的 HTML 文本是否呈现为bold 要么它有一个祖先 strong or the strong
  • VHDL:使用输入端口是不好的做法吗?

    我有一个程序 我按照以下方式使用 inout 端口 port inout unsigned 9 downto 0 if port gt 10 then port lt port 1 end if 我正在使用 inout 端口 这样我就可以读
  • 如何按不同字段分组

    我想找到所有名为 Hans 的用户 并通过对他们进行分组来汇总他们的 年龄 和 孩子 数量 假设我的数据库 用户 中有以下用户 id 01 user Hans age 50 childs 2 id 02 user Hans age 40 c
  • 如何使用 javascript/jQuery/ajax 打印不同的页面?

    使用以下代码 它显示打印对话框并成功打印页面 但是单击同一按钮后如何打印不同的页面 不同的页面名称是 letterprint php div class below movie left My printing contents div
  • -event- 只能出现在 += 或 -= 的左侧

    我有一个循环事件 我试图防止同一方法多次添加到一个事件中 我已经实施了add and remove访问器 但是 我收到一条错误消息 ItemsProcessed can only appear on the left hand side o
  • 如何配置与 Spring 集成的嵌入式 Tomcat 来侦听除 localhost 之外的 IP 地址请求?

    我正在尝试运行春季指南中的示例 构建 RESTful Web 服务 如果我打开的话效果很好本地主机 8080 问候语 但如果我打开其中一个 它就无法建立连接192 168 1 111 8080 问候语 or 140 112 134 22 8
  • PHP/MySQL/PDO 绑定空参数不起作用

    我在以下代码中绑定空参数时遇到问题 nullVariable NULL sql new PDO mysql host Server User Password sql gt setAttribute PDO ATTR ERRMODE PDO
  • Android 通过对话框共享

    我见过 TFLN 等应用程序中的 共享方式 对话框 昨晚的短信 看起来像这样 共享对话框 http garr me wp content uploads 2009 12 sharevia jpg 我正在寻找分享文字 有人能指出我正确的方向吗
  • 为 Jest 的每个测试文件指定 window.location

    我正在升级到 Jest 22 但我遇到了一些有关模拟的问题window location 以前这个方法可以用 但是升级后就不行了 Object defineProperty window location href writable tru
  • 获得发光效果的最佳方式 Windows Phone 7

    我正在摆弄 Windows Phone 7 sdk 并试图让屏幕看起来像老式数字显示屏 现在我正在尝试弄清楚如何使文本像那些很酷的数字时钟之一一样 发光 我假设您会考虑使用着色器来实现这种目的 但似乎在 Windows Phone 7 操作
  • 如何在 C 中声明字符串 [重复]

    这个问题在这里已经有答案了 谁能解释一下这些代码行之间有什么区别 char p String char p2 String char p3 7 String 在什么情况下我应该使用上面的每一个 这个链接应该可以满足你的好奇心 基本上 忘记你
  • 对字符串日期数组进行排序

    我想按升序对数组进行排序 日期为字符串格式 09 06 2015 25 06 2015 22 06 2015 25 07 2015 18 05 2015 甚至需要一个函数来检查这些日期是否是连续形式 eg Valid 09 06 2015
  • 是否可以创建一个计算指令数量的 Monad?

    考虑到 monad 我想到了用 monad 来打破冯 诺依曼架构的方法 冯诺依曼架构使用一组指令 称为程序 来更改内存中的数据 并且程序的每条指令的执行都会更新程序计数器以了解下一个要执行的指令 如果我们将冯 诺依曼架构视为一个 monad
  • “sizeof”如何确定数组的大小?

    C 如何在运行时找到数组的大小 有关数组大小或边界的信息存储在哪里 sizeof array 完全由C编译器实现 当程序被链接时 看起来像sizeof 对你的呼叫已转换为常量 示例 当您编译此 C 代码时 include
  • 我可以在 C# 中强制内存清理吗?

    我听说 C 不会立即释放内存 即使您已经使用完它 我可以强制 C 释放内存吗 我正在使用 Visual Studio 2008 Express 这有关系吗 附 我对 C 及其管理内存的方式没有任何问题 我只是好奇 Jim 你没听错 它通过称
  • 捆绑执行不与 crontab 一起使用

    我正在尝试使用 crontab 执行以下 shell 脚本 bin sh cd mnt voylla production current bundle exec rake maintenance last 2 days orders bu
  • 使用列级 WHERE 子句更新多个列中的所有 SQL NULL 值?

    我们有一个包含大量宽表 每个表 40 80 列 的数据库 并且刚刚发现一个错误 该错误将 NULL 值引入到大约 500 条记录中 NULL 值可以出现在任何列中 所有列都是整数列 请参见下图 但这些 NULL 值会导致我们的报告系统之一出