2017-08-09 76 views
-3

我们有如下所示的要求。用数值替换NULL

有6个item_class - 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 

因此,所有的item_class(A,B,C,d,A1A,A1B)应显示当item类为null并且它检查item_clas A,B,C是否已经存在,那么对于不同的rev_id它将显示剩余的一个(即D,A1A,A1B),但是应该覆盖所有的item_class。

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

+2

你应该的,你已经尝试什么首场演出,请阅读[如何创建一个最小的,完整的,并且可验证的示例](https://开头计算器.com/help/mcve) – Hatik

+5

我不遵循将'A1A'和'A1B'分配给这些'NULL'插槽的逻辑。如果所有记录中的'Rev_id'都是相同的,我可以看到一种做法,但没有一个共同的团体,恐怕你的问题对我没有多大意义。 –

+0

我们试过使用case语句,但没有工作,选择案件时,item_class不为空,rev_id不为空,然后item_class当item_class为空,rev_id不为空然后呢?结束item_class,来自test_class的rev_id,其中rev_id = 1;需要检查item_class A是否已经可用于rev_id 1,然后显示item_class B,如果item_class B可用于rev_id 1,则显示item_class C用于rev_id等。我们希望以这种方式查询 –

回答

-1

该问题通过使用外连接得到解决。请在下面找到,

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