我需要在返回时格式化列值,但该列可能不存在,在这种情况下我需要获取其余列数据

时间:2015-08-14 15:03:12

标签: sql sqlite

我有一个使用本地sqlite数据库的应用程序,每个项目都有一个名为“Theme”的特定表。有时该表有一个列'startDate',有时它没有。如果确实存在,我需要以特定格式返回'startDate'。我的问题是,当我查询此表时,指定必要的格式,如果该列不存在,查询将返回错误“NO SUCH COLUMN”。

我如何检查柱子的存在,如果它存在,返回“startDate”与数据的其余部分一起正确格式化,如果它不存在,则返回数据的剩余部分而没有'startDate'? ?

这必须在1个查询中完成!

像这样......

SELECT *  (if exists STRFTIME('%Y/%m/%d %H:%M:%S', startDate) AS sDate FROM Theme 

1 个答案:

答案 0 :(得分:0)

只有一个查询:

Cursor cursor = database.query(TABLE_NAME, null, null, null, null, null, null);
if(cursor.moveToFirst()) {
  do {
    for(String columnName : cursor.getColumnNames()) {
      // do something
    }
  } while(cursor.moveToNext());
} else {
  // your actions for empty table
}
cursor.close();