我有这张table
COL 1 | COL 2 | COL 3 | COL 4
entry1 | NULL | NULL | NULL
NULL | NULL | entry1 | entry1
entry2 | entry1 | entry1 | NULL
输出应为
COL_1 | COL_2 | COL_3 | COL_4
entry1 | EMPTY | EMPTY | EMPTY
EMPTY | EMPTY | entry1 | entry1
entry2 | entry1 | entry1 | EMPTY
我想用一个给定的字符串替换所有的列。在这个例子中,字符串是'EMPTY'。
我知道有像'COALESCE(COL_1,'EMPTY_STRING)AS COL_1 '这样的函数...但我不想对每一列都做COALESCE。有没有一种方法可以替换整个表中的每个NULL值?
谢谢。
1条答案
按热度按时间piah890a1#
一个简单的PL/SQL代码的例子,它做了你解释的事情。它假设表中的所有列都是
VARCHAR2
,因为你不能把'EMPTY'放入NUMBER
或DATE
数据类型的列中。如果你在那个表中有不同数据类型的列,在游标的WHERE
子句中过滤它们。样品表:
过程使用动态SQL更新NULL值,并使用字符串'EMPTY':
结果:
如果要将匿名代码移动到过程中,则:
程序:
测试: