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;
我有一些客户编号超过 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;