sql/impala,如何更快速高效地编写递增条件语句?

lokaqttq  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(241)

我希望有人能帮我。
我正在写一个 Impala 的案例来找出表格中遗漏的行。
但是,当1000=999时,我需要在下面编写我的示例。有没有一种更高效、更快速的解决方案,而不是编写1000行案例,它需要更少的代码?这对我很有帮助。谢谢您。

CASE WHEN dif_tradecount = 2 THEN 1
            WHEN dif_tradecount = 3 THEN 2
            WHEN dif_tradecount = 4 THEN 3
            WHEN dif_tradecount = 5 THEN 4
            WHEN dif_tradecount = 6 THEN 5
            WHEN dif_tradecount = 7 THEN 6
            WHEN dif_tradecount = 8 THEN 7
            WHEN dif_tradecount = 9 THEN 8
            WHEN dif_tradecount = 10 THEN 9
            WHEN dif_tradecount = 11 THEN 10
            WHEN dif_tradecount = 12 THEN 11 .....
            ELSE null
            END AS missed_messages
dluptydi

dluptydi1#

如果我没弄错你的任务:

CASE
    WHEN dif_tradecount > 1 and dif_tradecount<=1000 THEN dif_tradecount-1
    ELSE null
END AS missed_messages
fhity93d

fhity93d2#

你可以做:

(case when dif_tradecount between 2 and 1000
      then dif_tradecount - 1
 end) as missed_messages

我想知道为什么 case 是必要的。也许:

nullif(dif_tradecount - 1, 0) as missed_messages

也行。

相关问题