SELECT @MY_QUERY = 'SELECT * FROM OPENQUERY(HYPER_CONN, ''
選擇 coalesce(sum(quant_riga), 0) FROM DDT_CLI_RIGHE WHERE DOC_RIGA_ID = ''''' @THE_DDT ''''' ' ')'/span>
在where子句中我設定了這個變數@THEDDT:
DECLARE @THE_DDT nvarchar(MAX) = (SELECT STRING_AGG(DOC_RIGA_ID, ',') FROM . ..
例如,它將是這樣的 @THEDDT = test1,test2,test3
我想在我的 "where in "子句中設定這個變數,
。所以在openquery中,我想有這樣的東西(但使用varaible):
WHERE DOC_RIGA_ID IN ('test1', 'test2','test3')
有什么方法可以做到這一點嗎?
uj5u.com熱心網友回復:
這更像是在黑暗中的刺探,因為我們沒有所有的資訊,然而,正如我提到的,它似乎你需要做的是將你的DOC_RIGA_ID = {literal}子句改為DOC_RIGA_ID IN ({delimited List})子句:
DECLARE @THE_DDT nvarchar(MAX) = (SELECT STRING_AGG(QUOTENAME(DOC_RIGA_ID, ''''),', ') --假設DOC_RIGA_ID的值不能長于128個字符。
FROM ...
SELECT @MY_QUERY = 'SELECT * FROM OPENQUERY(HYPER_CONN, ''
SELECT COALESCE(SUM(QUANT_RIGA),0) FROM DDT_CLI_RIGHE WHERE DOC_RIGA_ID IN (' REPLACE(@THE_DDT, '''','''''') ')') OQ;'。
這當然是未經測驗的,因為我沒有辦法測驗這個陳述句。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/311043.html
標籤:
