簡體   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