查找 2 列的空值的过程,如果为真,则使用这些行中的一些值来执行某些操作

Posted

技术标签:

【中文标题】查找 2 列的空值的过程,如果为真,则使用这些行中的一些值来执行某些操作【英文标题】:Procedure to look up null values for 2 columns, if true, then use the some values from those rows to perform something 【发布时间】:2014-05-06 14:02:58 【问题描述】:

我有一个表可能有两列的空值。我需要为这两列找到任何可能包含空值的行。如果在这两列中找到空值,那么我需要使用这些行中的某些键值来执行某些操作。

所以如果找到 null,那么..else 非常感谢任何想法。如果能举出例子就更好了。 谢谢

编辑: 我有一个存储过程执行信息的表 Tab1。 例如,加载开始、结束以及是否完成的时间。 我的新程序将检查 End 和 Completed 列是否为空,如果为真,那么假设我要截断表 Tab2。我不想更改 Tab1 上的任何内容。

如果造成混淆,请见谅。

【问题讨论】:

像Here一样使用CASE WHEN.. 您给我们举个例子,说明您正在尝试对一些表架构、示例数据等做什么。我们不介意读者。 @OracleUser 我不想对那个表做任何事情。如果它们为空,我想截断另一个表。 @OldProgrammer 很抱歉造成混乱。我已经更新了帖子,希望对您有所帮助。 【参考方案1】:

这是一个通用示例:

CREATE TABLE tab1
(
   v1   NUMBER,
   v2   NUMBER,
   v3   NUMBER,
   v4   NUMBER
);

CREATE TABLE tab2
(
   v1   NUMBER,
   v2   NUMBER
);

INSERT INTO tab1
     VALUES (1, 1, 1, 1);

INSERT INTO tab1
     VALUES (2, 2, 2, 2);

INSERT INTO tab2
     VALUES (2, 2);


INSERT INTO tab1
     VALUES (3, 3, NULL, NULL);

INSERT INTO tab2
     VALUES (3, 3);

select * from tab2;
select * from tab1;

    V1         V2

     2          2
     3          3

已选择 2 行。

    V1         V2         V3         V4

     1          1          1          1
     2          2          2          2
     3          3     

DELETE FROM tab2
      WHERE (v1, v2) IN (SELECT v1, v2
                           FROM tab1
                          WHERE v3 IS NULL AND v4 IS NULL);


select * from tab2;

    V1         V2

     2          2

【讨论】:

以上是关于查找 2 列的空值的过程,如果为真,则使用这些行中的一些值来执行某些操作的主要内容,如果未能解决你的问题,请参考以下文章

具有三个公共值的行中的空值,第四个随着一个匹配而变化

EXCEL这列中的空单元格为啥选“空值”定位不了?

在 Google Data Studio 中显示重复列的空值的问题

检查输入字段中的空值的正确方法是啥[重复]

用于检查整个表的空值的 Bigquery SQL 函数

sql server 查询 order by 与 union 并替换多个列的空值