sqlite3 判断表是不是为空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlite3 判断表是不是为空相关的知识,希望对你有一定的参考价值。

char cSql[128];
memset(cSql,0,128);
int nrow = 0;
int ncolumn = 0;
int rc = -1;
char **chAllResult; //二维数组存放结果
char *zErrMsg = 0;
sprintf(cSql,"select * from %s",chTableName);
//获取当前表的行数、列数、总数
rc = sqlite3_get_table( pSqlite , cSql, &chAllResult , &nrow , &ncolumn , &zErrMsg );
在rc成功情况下,nrow=0,则表示表示空的
参考技术A if not exists (select 1 from thetable where 1=1)

sqlite条件查询查询blob

最近工作需要,需要实现以下效果:

我的表是这样的:

 

 

 

查询一个 blob需要实现以下效果:

现在有一个数据表table1,里面有一个字段的类型是blob类型,字段名为f1

需要查询这个表里面f1为空的时候 新建一个列名叫isnew,如果f1为空的时候isnew字段为1

所以sql要实现新建列和判断blob

在网上找了很多方法都不能判断blob是否为空

用过很多方法,比如:

utl_raw.cast_to_varchar2(dbms_lob.substr(Script,2000,1)) 

类似于这个的方法,会报错

 

 也不知道是不是我的使用问题,所以放弃了这个方法

把另外的正常字符串的字段和这个blob拼在一起然后用length函数判断

因此在结合很多方法和测试之后,总结的方法:

 

 select ID, Script, CASE WHEN  Script is null THEN 1  ELSE 0  END AS IsNew from k_component 

 查询结果:

 

 完美解决,把这个blob有值和没值分的清清楚楚

 

 

以上是关于sqlite3 判断表是不是为空的主要内容,如果未能解决你的问题,请参考以下文章

sqlite3如何判断一个表是否已经存在于数据库中 C++

python sqlite3 是不是有表

sqlite3 数据库创建表

Python sqlite3 参数化删除表

新的 sqlite3 数据库被锁定

无法更新 sqlite3 表 iOS 5