我想要请求图片并按DATE_TAKEN排序。在某些情况下import numpy
def create_profiles(n,month,daytype):
if daytype in ['weekday','weekend']:
pass
else:
print 'error in daytype'
return 0
if month in range(1,13):
pass
else:
print 'error in month'
return 0
no_its = n
idstring = str(no_its) + 'x_' + 'month-' + str(month) + '_' + 'daytype-' + str(daytype)
occ_profile_for_file = numpy.zeros([no_its,144])
for i in range (0,no_its):
occ_profile = get_occ_profile(daytype)
occ_profile_for_file[i][:] = occ_profile
Occfile = file('Occfile_'+idstring+'.dat', 'a')
numpy.savetxt('Occfile_'+idstring+'.dat',occ_profile_for_file,fmt="%d", delimiter='\t')
Occfile.close
不可用。
在这种情况下,我想使用DATE_TAKEN
作为后备。
是否可以在单个SQL语句中组合它。我有点挣扎,但有了这个。
到目前为止我的代码:
DATE_ADDED
我的想法是这样的:
String[] projection = {
MediaStore.MediaColumns._ID,
MediaStore.MediaColumns.DATA,
MediaStore.MediaColumns.MIME_TYPE,
MediaStore.Images.ImageColumns.DATE_ADDED,
MediaStore.Images.ImageColumns.DATE_TAKEN,
MediaStore.MediaColumns.TITLE,
};
String sortString = MediaStore.Images.ImageColumns.DATE_TAKEN + " ASC";
Uri target = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = getContentResolver().query(target, projection, null, null, sortString);
但是我发现了一个错误,我甚至不知道是否真的可以做这样的事情。
错误:
String sortString =
" CASE "+ MediaStore.Images.ImageColumns.DATE_TAKEN +" WHEN "+
MediaStore.Images.ImageColumns.DATE_TAKEN +" == 0 THEN " +
MediaStore.Images.ImageColumns.DATE_ADDED + " ASC " +
"ELSE " + MediaStore.Images.ImageColumns.DATE_TAKEN + " ASC END";
答案 0 :(得分:2)
ASC适用于用于排序的整个表达式,因此您必须一次写入:
CASE WHEN taken == 0 THEN added ELSE taken END ASC
注意:如果您使用的是NULL而不是零,那么使用coalesce:
会更容易COALESCE(taken, added) ASC