LibreOffice Base V5.3.2.2 - 相当于Access IIF

LibreOffice Base V5.3.2.2 - Equivalent to Access IIF

我是 Base 的新手,正在尝试转换一个简单的 MS Access 查询:

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

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

但我似乎无法弄清楚如果我可以使用 LIKE 而不是 = 如果 Archive_Loc 包含短语 ox.

如有任何建议,我们将不胜感激 - 谢谢

您似乎有 2 个问题:

  1. IIF 语法帮助
  2. 类似于 CASEWHEN() 函数。

首先,您确实有 SQL 操作可用,但您似乎在执行文本功能。

此外,您应该有一个过滤器导航器向导可能会有所帮助。

A1。语法为:

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

A2。喜欢的语法应该是:

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

规则:

For text, written in quotation marks (' '); "_" for a variable character, "%" for an arbitrary number of variable characters

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

这里有 BASE 的在线帮助站点:https://help.libreoffice.org/Common/Database_1

您的问题的答案取决于所使用的数据库的具体 SQL 风格。换句话说,不同的数据库使用有些不同的 SQL 语法。所以首先要问你的是你用的是哪个数据库???

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

一旦你知道你正在使用哪个数据库,那么这里是一个 link 到 link 的列表,用于我前段时间第一次学习 Base 时整理的各种数据库文档: https://ask.libreoffice.org/en/question/80972/to-learn-libreoffice-base-are-there-introductions-or-tutorials/

请向下滚动到 "IMPORTANT DATABASE DOCUMENTATION"。

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

HSLQDB 1.8 manual 是一本好书,虽然很难找到 link 到 ,我猜这可能是你的数据库使用.

希望对您有所帮助。

我最终解决了我的问题,方法是将 base 连接到我现有的 mysql 数据库并将查询直接设置为 运行 和 sql 以便它绕过解析器。

任务完成:-)