impala 中长度小于 8 位

smaller than 8 digits long in impala

我有一些客户编号超过 8 位。我如何标记它们才不被计算在内?

我尝试了以下方法:

SELECT 
t1.updte_user as staff_number,
(CASE WHEN (CAST(t1.updte_user) AS INT ) Integer not null check 
((CAST(t1.updte_user)AS INT) between 0 and 99999999 THEN  1 else 0 ) end as  
TRUE_STAFF
from old as t1;

我需要更改什么?

你可以试试下面

SELECT 
t1.updte_user as staff_number,
CASE WHEN length((CAST(t1.updte_user AS string))>8 then 0 else 1 as  
TRUE_STAFF
from old as t1;

这个怎么样?

select staff_number, 
       (case when t1.updte_user > 100000000 then 0 else 1 end)
from old;

如果值是一个字符串,那么只需要使用length():

select staff_number,
       (case when length(t1.updte_user) > 8 then 0 else 1 end)
from old;