繁体   English   中英

当我尝试使用 C 中的 sqlite 读取 NULL 值时,我的程序崩溃了

[英]My program crashes when I try to read a NULL value using sqlite in C

我尝试使用以下语句来检查记录的给定字段名中存在的值是否为NULL ,如果是NULL ,则输入0 ,否则返回字段名中存在的值。 它显示语法错误。

SELECT [structname.fieldname], isnull([structname.fieldname],0) FROM tablename WHERE condition;

你能告诉我我哪里错了吗?

我也试过下面的说法

SELECT [structname.fieldname], CASE WHEN [structname.fieldname] IS NULL THEN 0 ELSE [structname.fieldname] END FROM tablename WHERE condition;

对于上述语句,程序在遇到NULL值时会崩溃。 你能告诉我我还能如何检查特定记录的值是否为NULL ,如果不是NULL则读取该值,否则将其读取为0

您没有正确使用方括号。

列名应该这样写:

[structname].[fieldname]

假设[structname]fieldname来自的表的名称或别名,而不像

[structname.fieldname]

仅当列的名称实际上是structname.fieldname时才可以。

您需要使用 function COALESCE()来完成:

SELECT COALESCE([fieldname], 0) FROM tablename

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM