如果 SQL 查詢中 JSL 清單上的項目不存在,如何跳過該項目?大家好,
我有一個從 JSL 清單查詢的腳本。但是,只要資料庫中不存在某些內容,它就會出錯。有沒有辦法可以跳過不存在的內容並繼續處理清單中的下一個值?
我有這個例子:
NameList = {"John","Jane","Anna","Dominic"};
NameItems = ConcatItems(NameList ,",");
Eval (Parse (Evalinsert("\[
db= Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)")
]\")));;例如,John 不存在,它應該跳過並與 Jane、Anna 或 Dominic 一起去
自動化和腳本編寫視窗回覆:如果 SQL 查詢中 JSL 清單上的項目不存在,如何跳過該項目?除非在清單中找不到任何值,否則 IN 運算子不應失敗。您應該能夠使用 Try() 函數來保護此問題
Eval (Parse (Evalinsert("\[
db= Try( Open Database("Server Specs", "SELECT * FROM dbNames WHERE name IN (^NameItems ^)") )
]\")));
另外,根據我的經驗,您的 IN 運算子應該用引號將呼叫中的字元元素括起來。
WHERE name IN ('John','Jane','Anna','Dominic')
將 JSL 變更為以下內容會將 IN 運算子呼叫變更為上面的形式
NameList = {"John","Jane","Anna","Dominic"};
NameItems = "'" || ConcatItems(NameList ,"','") || "'";回覆:如果 SQL 查詢中 JSL 清單上的項目不存在,如何跳過該項目?*編輯
沒有看到吉姆的回應。不過反應不錯。
名稱列表的格式似乎不正確。
約翰、珍、安娜、多明尼克
應該是“約翰”、“簡”、“安娜”、“多米尼克”
如果你想使用 Concat Items(),你需要這樣做:
NameItems = "'" || Concat Items(NameList,"','") || "'"