我有一個 SQL 更新陳述句所需的主鍵陣列。我的目標是不要回圈遍歷每個主鍵并多次執行更新陳述句。我想要做的是創建一個字串并且只執行陳述句 1 次。
這是我的主鍵陣列
["1234-114600000034-000093-ABCDE","1234-034-114600000378-FGH","1234-
114600000034-1146000-JKLMN","1234-1146034-00380-OPQRS","1234-
114600000034-1181-TUVWX"]
我想要的輸出將是這樣的字串
('1234-114600000034-000093-ABCDE','1234-034-114600000378-FGH','1234-
114600000034-1146000-JKLMN','1234-1146034-00380-OPQRS','1234-
114600000034-1181-TUVWX')
我的 SQL 陳述句看起來像這樣
UPDATE [TABLE_NAME] SET [COLUMN_NAME] = 1 WHERE ID IN ('1234-114600000034-000093-ABCDE','1234-034-114600000378-FGH','1234-
114600000034-1146000-JKLMN','1234-1146034-00380-OPQRS','1234-
114600000034-1181-TUVWX')
任何幫助將不勝感激。
uj5u.com熱心網友回復:
您可以使用該joinBy函式,然后在前面加上引號和括號。
%dw 2.0
output application/json
var ids = ["1234-114600000034-000093-ABCDE","1234-034-114600000378-FGH",
"1234-114600000034-1146000-JKLMN","1234-1146034-00380-OPQRS",
"1234-114600000034-1181-TUVWX"]
---
"UPDATE [TABLE_NAME] SET [COLUMN_NAME] = 1 WHERE ID IN ('"
(ids joinBy "','") "')"
uj5u.com熱心網友回復:
其中一種方法是使用reduce。
腳本
%dw 2.0
output application/java
var inp = ["1234-114600000034-000093-ABCDE","1234-034-114600000378-FGH","1234-114600000034-1146000-JKLMN","1234-1146034-00380-OPQRS","1234-114600000034-1181-TUVWX"]
---
('(' (inp reduce ((item, acc = '') -> acc "'" item "'," )) ')') replace ',)' with ')'
輸出
('1234-114600000034-000093-ABCDE','1234-034-114600000378-FGH','1234-114600000034-1146000-JKLMN','1234-1146034-00380-OPQRS','1234-114600000034-1181-TUVWX')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414901.html
標籤:
