检查列值以在配置单元中填充多个列

时间:2018-09-13 10:00:29

标签: sql hiveql

我正在尝试创建表Y。我处于以下情况:-

如果表X的a列为1(X.a ='Y'),则X.b将填充Y.b,而X.c将填充Y.c。

如果表X的a列为0(X.a ='N'),则X.b将填充Y.d,X.c将填充Y.e

我尝试使用“ case when”,但这给了我2行。我只需要保留1行。

enter image description here

表X

a | b | c |

Y | 1 | 3 |

N | 2 | 4 |

表Y

b | c | d | e |

1 | 3 | 2 | 4 |

我需要这样的结果。

如何在HiveQl中实现此条件?

1 个答案:

答案 0 :(得分:0)

这是您想要的吗?

create table y as
   select (case when x.a = 1 then x.b end) as b,
          (case when x.a = 1 then x.c end) as c,
          (case when x.a = 0 then x.b end) as d,
          (case when x.a = 0 then x.c end) as e

   from x;