LibreOffice Base V5.3.2.2 - 相当于Access IIF

时间:2017-08-23 13:25:16

标签: libreoffice-base

我是Base的新手并尝试转换简单的MS Access查询:

Box:IIF([Archive_Loc] like '**ox*','B')

我正在使用casewhen("Archive_Loc" = '%ox%','B')

但是我似乎无法弄清楚如果我可以使用LIKE而不是=,这显然不会给我我返回B后的结果{{1}包含短语ox。

任何建议都将不胜感激 - 谢谢

3 个答案:

答案 0 :(得分:0)

您似乎有两个问题:

  1. IIF语法帮助
  2. 与CASEWHEN()函数一样。
  3. 首先,您可以使用SQL操作,但您似乎正在执行文本功能。

    此外,您应该拥有可能有帮助的过滤器导航器向导。

    A1。语法是:

    IF([boolean_field];"Yes";"No")
    

    A2。类似语法应该是:

    IF([Archive_Loc] like '%ox%','B') --will show something containing "ox" in it.
    

    规则:

      

    对于用引号('')写的文字;变量的“_”   字符,“%”表示任意数量的变量字符

    从网站下载引用:http://www.libreoffice.org/get-help/documentation/

    以下是BASE的在线帮助网站:https://help.libreoffice.org/Common/Database_1

答案 1 :(得分:0)

您的问题的答案取决于所使用的数据库的特定SQL风格。换句话说,不同的数据库使用稍微不同的SQL语法。所以首先要问你的是你使用的数据库???

以下是一些选项:HSQLDB 1.8是默认的内置数据库。 (注意:有2.3版本,但默认情况下Base不使用它。)您也可以选择Firebird。至于我,大多数时候我更喜欢连接到MariaDB(MySQL免费数据库引擎),因为它有其他有价值的工具,如HeidiSQL和phpmyadmin。

一旦你知道你正在使用哪个数据库,那么这里是一个指向各种数据库文档的链接列表的链接,这些链接是我在第一次学习基础时放在一起的基础:https://ask.libreoffice.org/en/question/80972/to-learn-libreoffice-base-are-there-introductions-or-tutorials/

请向下滚动到"重要数据库文档"。

这不仅可以帮助您回答这个具体问题,还可以为您提供宝贵的资源,让您自己回答更多问题。

HSLQDB 1.8 manual是一个很好的阅读,虽然很难找到的链接,但我猜这可能是你正在使用的数据库。

希望这会对你有所帮助。

答案 2 :(得分:0)

我最终通过将base连接到我现有的mysql数据库并设置查询来直接运行sql以便绕过解析器来解决我的问题。

完成工作:-)