c++ - Informix 中解码的代码修复

标签 c++ mysql sql informix

我在 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/

相关文章:

c++ - Visual Studio 6.0 中的 std::auto_ptr 编译问题

c++ - C++中的DB(MYSQL)命令查询

c# - PInvoking C++ DLL 时出现 AccessViolationException(cdecl 调用约定问题?)

php - laravel 中的 whereBetween 是包容性的吗?

php - MYSQL语法错误

c++ - 长时间保持线程锁定

php - 如何在 MySQLi 中为我的数据库创建表

mysql - 如何将 longblob 转换为可读格式

mysql - 比较 MySQL 中的日期

sql - 执行SQL遇到的问题