查找 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 列的空值的过程,如果为真,则使用这些行中的一些值来执行某些操作的主要内容,如果未能解决你的问题,请参考以下文章