Sql,Compged,Min和空白

时间:2015-05-07 09:24:48

标签: sas proc-sql

我在sql中使用compged比较4个字符串是一个提取:

MIN(compged(a.string1,b.string1),
compged(a.string1,b.string2),
compged(a.string2,b.string1),               
compged(a.string2,b.string2)) < 200

不幸的是,有时来自set a的字符串和来自set b的字符串为空/空,这意味着compged解析为0并且min min为0.有没有办法修改以便比较两个空白字符串给出值大于200还是什么?

提前致谢

2 个答案:

答案 0 :(得分:4)

您可以计算新变量来处理这种情况(两个比较变量都是空白的)并在 locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); locationLis = new LocationListener() { @Override public void onLocationChanged(Location location) { lat= location.getLatitude(); log = location.getLongitude(); locationManager.removeUpdates(locationLis); } @Override public void onStatusChanged(String s, int i, Bundle bundle){ } @Override public void onProviderEnabled(String s) { } @Override public void onProviderDisabled(String s) { System.out.println("Not Found"); } }; locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationLis); 函数中使用它们:

MIN()

答案 1 :(得分:0)

快速和脏选项是使用不同的200char字符串包装每个字符串,以防字符串为null或长度为0(因为空字符串不总是被引用为NULL) 所以a.string1 = 200 *&#39; Z&#39;,b.string1 = 200 *&#39; X&#39; .....

或者甚至更好,用支票包装每个调用,这样如果a.string1为null或为空,则返回另一个字符串的长度。如果两者都为空,则返回1000,以便通过where子句删除记录。

您还可以添加前缀 - &#39; A&#39;对所有字符串。这将确保没有空字符串,并且不会改变距离。但是你仍然需要清除两个字符串都是空的情况。