Sql 将NULL替换为值
我们的要求如下所示 所有记录中都应显示6个项目(类别A、B、C、D、A1A、A1B) 记录: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
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
来自哪里?什么决定了结果集的顺序?如果你想要一个答案,你需要适当地解释你的要求。你可以用相关的细节更新问题,而不是在评论中提供细节。