我在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还是什么?
提前致谢
答案 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;对所有字符串。这将确保没有空字符串,并且不会改变距离。但是你仍然需要清除两个字符串都是空的情况。