0

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

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

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

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

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

4

3 回答 3

0

你似乎有2个问题:

  1. IIF 语法帮助
  2. 与 CASEWHEN() 函数一样。

首先,您确实有可用的 SQL 操作,但您似乎正在执行文本函数。

此外,您应该有一个可能会有所帮助的 Filter Navigator 向导。

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

于 2017-08-23T14:54:27.753 回答
0

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

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

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

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

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

HSLQDB 1.8 手册很好读,虽然很难找到指向 的链接,我猜这可能是您正在使用的数据库。

希望这对您有所帮助。

于 2017-08-24T00:38:46.020 回答
0

我最终通过将基础连接到我现有的 mysql 数据库并将查询设置为直接运行 sql 以绕过解析器,从而解决了我的问题。

任务完成 :-)

于 2017-08-25T10:36:59.350 回答