你好,
我在使用 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開發