在 SAS 内
我有一个 proc-sql 步骤,用于创建宏变量以进行一些列表处理。
我遇到了一个令人困惑的步骤,其中使用 case 语句而不是 where 语句导致结果数据集的第一行是空字符串 ('')
任一表的任一字段中均不包含空字符串。
以下是两个示例 SQL 步骤,为简单起见,删除了所有宏业务:
create table test as
select distinct
case
when brand in (select distinct core_brand from new_tv.core_noncore_brands) then brand
end as brand1
from new_tv.new_tv2
;
create table test2 as
select distinct brand
from new_tv.new_tv2
where brand in (select distinct core_brand from new_tv.core_noncore_brands)
;
使用第一段代码,结果是一个包含多行的表,第一行是一个空字符串。
第二段代码按预期工作
这有什么原因吗?