无法弄清楚如何在 Caché SQL 中使用 MODULO/MODULUS 函数

Cannot figure out how to use MODULO/MODULUS function in Caché SQL

Here is the documentation.

我正在使用 DB Visualizer Pro 9.2.6

我尝试了多种变体,包括以下

SELECT TOP 10 * FROM tableName WHERE {ID MOD(5,3)}
SELECT TOP 10 * FROM tableName WHERE ID MOD(5,3)
SELECT TOP 10 * FROM tableName WHERE ID MOD 5 = 3
SELECT TOP 10 * FROM tableName WHERE ID % 5 = 3

老实说,文档对我来说毫无意义... "fn" 是字段名称吗?我认为这是一个功能,但他们选择的是什么领域?这只是令人困惑...

examples 看来,fn 应该包含在大括号内:

The following example shows the remainder returned by MOD.

SELECT DISTINCT {fn MOD(5,3)} AS Remainder
FROM Sample.Person

returns 2

The following example shows the remainder returned by MOD with a negative dividend.

SELECT DISTINCT {fn MOD(-5,3)} AS Remainder
FROM Sample.Person

returns 1

如果您查看另一个函数,例如 ROUND,它们使用相同的语法(以及其他)。

所以在你的情况下,可能是这样的(假设你想要满足 5 % ID == 3 的记录)

SELECT TOP 10 * FROM tableName WHERE {fn MOD(ID,5)} = 3

令人困惑?是的

还有一个二元运算符求模:#

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_langelements#GSQL_langelements_ops_math