【发布时间】:2020-03-24 09:46:04
【问题描述】:
如何从 table_A 的各个列中找到所有空值,然后将这些空值复制或插入到另一个 table_B 的各个列中,该 table_B 具有与 table_A 一样的精确架构(即所有列)。
有什么方法可以动态地或不指定表的任何列名。也欢迎其他方法。
我尝试了以下方法来查找具有null 值的列:
select *
from table_A
where col_1 is null or col_2 is null
【问题讨论】:
-
我不明白。如果一行具有这些值:col1 = NULL、col2 = NULL、col3 = 333。您希望将空值复制到另一个表。另一个表具有相同的列,因此您使用 col1 = NULL、col2 = NULL 创建一行。对于col3?您想在该行中插入哪个值?也为空?然后你只插入空行。请详细说明。
-
table_A和table_B是否包含完全相同的行(意味着相同的主键 ID),或者 ID 和/或行数是否存在差异?请edit问题使其更完整。 -
给出一个具体的例子来说明你想要做什么,两个表的实际示例数据以及使用这两个示例表时应该得到的结果。 stackoverflow.com/help/minimal-reproducible-example
-
如果您想动态地执行此操作,而无需指定列名,您需要编写 SQL 的代码(这就是 Dynamic-SQL)。 SQL-writing-code 读取数据库的模式并编写一个或多个 sql 语句来执行您想要的操作,但是 that SQL 语句中包含列名(SQL 无法执行 anything 没有列名)。所以,先弄清楚如何使用列名,然后找出动态生成该 SQL 所需的代码。
标签: sql sql-server tsql dynamic-sql