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

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

目标只是检查一个字段是否 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#

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

  1. proc sql;
  2. create table want as
  3. select *, name = 'Alfred' as flag
  4. from sashelp.class;
  5. quit;
  6. data want;
  7. set sashelp.class;
  8. flag = (name = 'Alfred');
  9. run;

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

  1. x = ifc(name="Alfred", 1, 0, .);
展开查看全部

相关问题