我在 Informix 数据库中使用解码函数。我正在检索一个整数数据类型的字段。如果我检索到的值是 ''
那么我需要将它设置为 null;如果不是,我将设置相同的值。
我试过这样的:
decode(table1.field1,'',NULL,table1.field1)
但我收到以下错误
Corresponding types must be compatible in CASE expression.
我很困惑如何从数据库中检索值——作为 null 或作为 0 或 -1 或其他。我需要这样做吗?
decode(table1.field1,'',0,table1.field1)
如何解决
最佳答案
这里有些困惑。由于 table1.field1
是一个 INTEGER 列,它永远不会包含空字符串。它将包含 NULL 或有效的 INTEGER 值;所以根本不需要更新。
为什么您认为您可能得到 ''
?如果您的编程语言区分类型,您必须将 INTEGER 列选择到字符串变量中。否则,空字符串很可能是您的编程语言表示空值的方式。
关于c++ - Informix 中解码的代码修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12861623/