我有列-ip,port,pair,pair\u status,length,length\u to\u fault,add\u date。我需要按端口对所有内容进行排序,每个端口至少有一对(a、b、c、d)。当它排序时,我需要排序更多-我需要在精确的端口中对每一对进行排序。
目前我有选择,做我需要的一切,但只是长度。
我想改变这个片段,这样它就可以检查-如果长度=n/a,那么它需要长度到断层,如果长度到断层=n/a,那么它需要长度。我的想法是把这两列合并成一列。此外,每个记录只有一列有值(可以是长度或长度\u到\u错误)。到目前为止我有这个-
Select d.*
from (select d.*, lead(length::float) over (partition by port_nbr, pair order by d.add_date) as next_length
from diags d
where length !='N/A'
) d
这工作得很好,但有些记录的长度为n/a,但值在长度\u到\u的范围内,因此此选择不接受该记录。有没有一种方法可以编辑这个片段来包含长度从\u到\u的错误呢?也许我可以把这两列相加?另外,length/length\ to\ fault是数据库中的字符,所以我必须在这个选择中将其更改为float。
1条答案
按热度按时间of1yzvn41#
你可以使用
case
表达式: