代码之家  ›  专栏  ›  技术社区  ›  Bobby

.mdb和odb的结果不同,为什么?

  •  0
  • Bobby  · 技术社区  · 16 年前

    我使用下面的查询通过jdbc从.mdb文件中检索数据,但是当我在.odb文件上尝试时,它不会抛出任何异常,但根本没有结果。我想知道.odb是否区分大小写,mdb不在哪里,或者是否还有其他东西丢失?

    “从datatable中选择distinct column one+':'+column two作为resultcolumn;”

    如何创建一个对这两种文件类型都有效的语句?

    2 回复  |  直到 16 年前
        1
  •  1
  •   HLGEM    16 年前

    它们会有所不同,因为它们是由两个不同的公司编写的两种不同的产品,程序员在如何处理问题上做出了不同的选择。

    您是否尝试过使用您指定的列别名,也许是比expr1000更具描述性的别名?

    SELECT DISTINCT column-one + ":" + column-two As Expr1000 FROM datatable
    

    这就是我在SQL Server中编写它的方法,检查您的数据库以查看这是否有效。

        2
  •  1
  •   onedaywhen    16 年前

    一些建议:

    1)尝试使用单引号代替双引号,例如

    SELECT DISTINCT column-one + ':' + column-two As ResultColumn FROM datatable;
    

    2)也许.odb源的SQL语法处理串联的方式不同,例如使用.mdb,'+' NULL s将传播意味着如果至少有一个列的值是 无效的 则结果将为空;“&”串联符号将忽略 无效的 值,例如.mdb-land中的this

    SELECT DISTINCT column-one & ':' & column-two As ResultColumn FROM datatable;
    

    在标准ANSI/ISO SQL-92中与此等效(在.mdb-land中不受支持)

    SELECT DISTINCT COALESCE(column-one, '') + ':' + COALESCE(column-two, '') As ResultColumn FROM datatable;
    

    3)如果这两个源不支持相同的语法,可以使用.mdb的链接表功能从.mdb中的.odb源链接表,并且只使用.mdb中的SQL代码吗?