如何选择长度小于 8 个字符的所有值,并且不是空值也不是空值?
这就是我所拥有的,但它仍然拉入空值
select distinct
alphaidx,
case when len(termdatex)<8 then termdatex end as termdatex
from table
where termdatex is not null and termdatex!=''
你的问题出在你的
case
表达上。隐式地,任何未在 when
子句之一中处理的内容都将作为 null
返回。在这里,由于您没有在 where
子句中过滤掉它们,因此任何具有 8 个或更多字符的字符串都将从 null
表达式中作为 case
返回。要解决此问题,您可以将所有逻辑移至 where
子句:
SELECT DISTINCT alphaidx, termdatex
FROM some_table
WHERE termdatex IS NOT NULL AND termdatex != '' AND LEN(termdatex) < 8