代码之家  ›  专栏  ›  技术社区  ›  Alex Duggleby

用于ODBC连接的SQL命令为空

  •  0
  • Alex Duggleby  · 技术社区  · 15 年前

    我通过ODBC连接到一个OpenEdge数据服务器(不是我们的产品,我们只是访问他们的数据库,我几乎没有任何信息,当然也没有来自另一方的帮助)。

    无论如何,我只需要执行一个简单的select,添加几行,然后需要相当于isnull语句。

    基本上我想执行

    SELECT ISNULL(NULL,'test')
    

    由于语法错误,此操作失败。我环顾四周,他们错误地称之为“文档”,但只有对sp_sql_isull的引用,但我也不能让它起作用。我很适合T-SQL,所以任何方向的指针都值得赞赏,即使它只是一个带有tfm链接的rtfm:。

    谢谢

    2 回复  |  直到 13 年前
        1
  •  5
  •   Community CDub    8 年前

    多亏了加泰林和这个 question 我走上了正确的轨道。我一直认为我需要一个特定于OpenEdge的函数,但实际上我只需要使用odbc sql语法。

    得到什么

    ISNULL(col,4) 
    

    你能用吗

    COALESCE(col,4) 
    

    which”返回具有最高数据类型优先级的表达式的数据类型。如果所有表达式都不可为空,则结果类型为不可为空。” MSDN

    基本上,如果值为空(因此不可转换),它将转换为4。

        2
  •  2
  •   Cătălin Pitiș    15 年前

    我不是百分之百确定,但我认为ODBC驱动程序需要一个有效的SQL语句,而不是像您提供的那样特定于DBMS的SQL语句。