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

Sql 我需要在我的返回中格式化一个列值,但该列可能不存在,在这种情况下,我需要获取其余的列数据,sql,sqlite,Sql,Sqlite,我有一个应用程序,它使用本地sqlite数据库,每个项目都有一个名为“Theme”的特定表。有时该表有一列“startDate”,有时则没有。如果“startDate”确实存在,我需要以特定格式返回它。我的问题是,当我查询这个表时,指定了必要的格式,如果该列不存在,查询将返回一个错误“NO-this column” 如何检查列是否存在,如果确实存在,则返回格式正确的“startDate”以及其余数据;如果不存在,则返回不带“startDate”的其余数据 这必须在1个查询中完成 像这样的 SEL

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

如何检查列是否存在,如果确实存在,则返回格式正确的“startDate”以及其余数据;如果不存在,则返回不带“startDate”的其余数据

这必须在1个查询中完成

像这样的

SELECT *  (if exists STRFTIME('%Y/%m/%d %H:%M:%S', startDate) AS sDate FROM Theme 
只有一个查询:

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();

为什么你的应用程序不知道数据库的结构?可能重复的应用程序可以使用
选择*
并检查结果中的列,查看或尝试。@Hanno,因为现在数据库中,有些项目的“主题”表中有日期信息,而有些项目的“主题”表中没有日期信息