我怎样才能做到这一点?

时间:2020-02-07 15:25:08

标签: sql oracle plsql

下面是数据集

P1      A1      N1

null    null    0
2776646 2776621 1
2776646 2776622 2
2776642 2776645 3
2776642 2776648 4
2776642 2776649 5
2776642 2776647 6
2776642 2776646 7
0       2776641
0       2776642

我需要在此处添加另一列,称为“ parent_n1”,它将具有N1中的值,这些值属于A1的父级(P1)。例如:

对于A1.2776621 P1 = 2776646,在A1 2776646 = N1.7中,因此该行的parent_n1变为7。类似地,查询应为每一行返回以下输出:

P1      A1      N1  Parent_N1

null    null    0   0
2776646 2776621 1   7
2776646 2776622 2   7
2776642 2776645 3   9
2776642 2776648 4   9
2776642 2776649 5   9
2776642 2776647 6   9
2776642 2776646 7   9
0       2776641 8   0
0       2776642 9   0

任何帮助在这里都将不胜感激。

2 个答案:

答案 0 :(得分:3)

您可以自行加入表格:

select
    t.*,
    coalesce(p.n1, 0) parent_n1
from mytable t
left join mytable p on p.a1 = t.p1

Demo on DB Fiddle

     P1 |      A1 | N1 | PARENT_N1
------: | ------: | -: | --------:
   null |    null |  0 |         0
2776646 | 2776621 |  1 |         7
2776646 | 2776622 |  2 |         7
2776642 | 2776645 |  3 |         9
2776642 | 2776648 |  4 |         9
2776642 | 2776649 |  5 |         9
2776642 | 2776647 |  6 |         9
2776642 | 2776646 |  7 |         9
      0 | 2776641 |  8 |         0
      0 | 2776642 |  9 |         0

答案 1 :(得分:0)

我认为这可以满足您的需求

@Override
public void onProgressChanged(SeekBar seekbar, int progress, boolean fromUser) {
  switch(seekbar.getId()) {
    case R.id.simpleSeekBar1:
        // code block for first Seek bar 
        break;
    case R.id.simpleSeekBar2:
        // code block for second Seek bar 
        break;
    }
}


SeekBar simpleSeekBar = (SeekBar) findViewById(R.id.simpleSeekBar1); // initiate the first Seek bar 
SeekBar simpleSeekBar = (SeekBar) findViewById(R.id.simpleSeekBar2); // initiate the second Seek bar 
相关问题