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

标签 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 

最佳答案

只有一个查询:

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

关于sql - 我需要格式化返回的列值,但该列可能不存在,在这种情况下,我需要获取其余的列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32013128/

相关文章:

逗号之间的MySQL字符串搜索

安卓/SQLite : Saving/Retrieving data of type REAL

android - 未知的 sqlite 数据库错误

sql - 比较一年中的两周 sqlite

sql - PostgreSQL 中的窗口函数尾随日期

php - 是否可以在 mysql 表中按日期(时间戳)为每个组选择 10 行?如何进行?

php - 如何查找速记或标准版本的地址? N 或北、NW 或西北

mysql - 使用 MySQL 选择查询生成报告

python - ipdb,多线程和自动重新加载程序导致 ProgrammingError

android - 我如何找到在Android上的SQLite引擎中花费了多少时间?