Sql 将NULL替换为值

Sql 将NULL替换为值,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我们的要求如下所示 所有记录中都应显示6个项目(类别A、B、C、D、A1A、A1B) 记录: Item_class Rev_id A 1 B 1 C 2 D 1 Null 1 Null 2 我们需要显示下表中给出的记录 item_class Rev_id A 1 B 1 C 2 D

我们的要求如下所示

所有记录中都应显示6个项目(类别A、B、C、D、A1A、A1B)

记录:

Item_class Rev_id
A            1
B            1
C            2
D            1
Null         1
Null         2
我们需要显示下表中给出的记录

item_class     Rev_id
A               1
B               1
C               2
D               1
A1A             1
A1B             2
因此,当项目类为空时,应显示所有项目类(A、B、C、D、A1A、A1B),并检查项目类A、B、C是否已经存在,然后对于不同版本id,将显示剩余的项目类(即D、A1A、A1B),但应涵盖所有项目类


我们如何编写一个查询来获取类似的记录?

这个问题通过使用外部连接得到了解决。请在下面找到

select b.item_class,
       a.rev_id
from   cct_test a 
       right outer join cct_item_details b
       on a.item_class = b.item_class and a.rev_id = 1;
输出:

item_class | rev_id
A          |  1
C          |  1
A1B        |  null
A1A        |  null
D          |  null     
B          |  null

您应该首先展示您尝试过的内容,请阅读我不遵循您将
A1A
A1B
分配给那些
NULL
插槽的逻辑。如果所有记录的
Rev_id
都是相同的,我可以找到一种方法,但是没有一个共同的组,恐怕你的问题对我来说没有多大意义。我们尝试过使用案例陈述,但没有成功,选择项目类别不为空且版本id不为空时的案例,然后选择项目类别不为空且版本id不为空时的项目类别?终产品类别,来自测试类别的版本id,其中版本id=1;对于?这里,需要检查项目A类是否已可用于rev_id 1,然后显示项目B类,如果项目B类可用于rev_id 1,然后显示项目C类用于rev_id等。我们希望以这种方式查询
rev_id
值来自何处?
item\u class
来自哪里?什么决定了结果集的顺序?如果你想要一个答案,你需要适当地解释你的要求。你可以用相关的细节更新问题,而不是在评论中提供细节。