你好,
我在使用 JMP 查询生成器查询 PostgreSQL 数据库时遇到问题...
事实上,一些 PostgreSQL 函数似乎在查询构建器中无法正常工作......
例如,如果我想从其中一个字符的位置检索字符串的一部分:
这个命令可以用 PostgreSQL 写成:
选择子串('托马斯'从位置('H'在'托马斯')为了2)作为错误测试
但是,如果我使用 SQL 公式编辑器将其写入 JMP 查询生成器的“添加计算列”中:
substring('Thomas' from position('h' in 'Thomas') for 2)我收到此错误:

而如果我在 SQL Custom 中手动编写相同的命令,则可以很好地执行它:

在那种情况下,它像其他 SQL 命令一样被翻译成 jsl ...

我不明白的是,有时我可以在查询构建器的“计算列”中使用纯 PostgreSQL 语法编写复杂的公式,并且一切正常! 喜欢:

此计算列工作正常并且不返回任何错误消息。 然而,它是一个特定的 postgresql 代码......
这是某些 PostgreSQL 函数的已知错误吗? 如何解决它?
感谢您的帮助!
法兰克
你好布莱恩
感谢您的回答
对我来说奇怪的是,例如“lpad”或“to char”函数是 PostgreSQL 的特定语法,而不是一些通用 SQL 或 Oracle SQL,......并且工作得很好:
t2.lot_id || '-' || lpad(to_char(t2.wafer_nr, 'FM999'), 2, '0')
添加计算列有一些扩展列表,它将支持数据库特定的 SQL,但 postgresql 不是其中之一。默认情况下,您可能会在公式编辑器左上角的下拉列表中获取通用 SQL。有一些扩展支持 Oracle、MySQL、SQL Server、SAS 等。
我们需要为 JMP 的未来版本考虑一个特定于 postgresql 的扩展集。
布赖恩·科科伦
JMP开发