我是 Base 的新手,正在尝试转换一个简单的 MS Access 查询:
Box:IIF([Archive_Loc] like '**ox*','B')
我正在使用casewhen("Archive_Loc" = '%ox%','B')
但我似乎无法弄清楚如果我可以使用LIKE
而不是=
显然不会给我返回 B 如果Archive_Loc
包含短语 ox 之后的结果。
任何建议将不胜感激 - 谢谢
我是 Base 的新手,正在尝试转换一个简单的 MS Access 查询:
Box:IIF([Archive_Loc] like '**ox*','B')
我正在使用casewhen("Archive_Loc" = '%ox%','B')
但我似乎无法弄清楚如果我可以使用LIKE
而不是=
显然不会给我返回 B 如果Archive_Loc
包含短语 ox 之后的结果。
任何建议将不胜感激 - 谢谢
你似乎有2个问题:
首先,您确实有可用的 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
您的问题的答案取决于所使用数据库的特定 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 手册很好读,虽然很难找到指向 的链接,我猜这可能是您正在使用的数据库。
希望这对您有所帮助。
我最终通过将基础连接到我现有的 mysql 数据库并将查询设置为直接运行 sql 以绕过解析器,从而解决了我的问题。
任务完成 :-)