当foo.bar为null时,是否有更简洁的版本,然后是0或1结束范例?

taor4pac  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(388)

目标只是检查一个字段是否 NULL 或不,产生价值 1 当磁场不稳定时 NULL ,和 0 否则。我不能用 COALESCE 在这里,因为如果这个领域不是 NULL ,我只想回来 1 ,而不是字段的值。
我有一种直觉,已经有一种功能可以做到这一点——类似于 NULL_STATUS_INTEGER(foo.bar) ,例如-不需要写出完整的 CASE 声明 CASE WHEN foo.bar IS NULL THEN 0 ELSE 1 END . 我不是说 CASE 版本长得离谱,但我只是觉得奇怪,没有一个更短的方法可以做到这一点。
我主要感兴趣的解决方案不局限于一个sql供应商,但我碰巧在使用sas,如果碰巧有一个sas特定的方法来实现这一点的话 PROC SQL .

3z6pesqy

3z6pesqy1#

比较也是布尔型的,返回真/假

proc sql;
create table want as
select *, name = 'Alfred' as flag
from sashelp.class;
quit;

data want;
set sashelp.class;
flag = (name = 'Alfred');

run;

编辑:
另一个选项是使用ifn()/ifc(),它包含三个条件:false、true和missing。ifn()/ifc()可用于sql或sas中的数据步骤。

x = ifc(name="Alfred", 1, 0, .);

相关问题