Sql 黑斑羚中长度小于8位的

Sql 黑斑羚中长度小于8位的,sql,hadoop,impala,Sql,Hadoop,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;

我有客户号码,其中一些超过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;
如果值是字符串,则只需使用长度:

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