實質上,我希望能夠創建一個接受可變數量參數的標量函數,並將它們連接在一起以返回單個VARCHAR。換句話說,我希望能夠在不確定數量的變量上創建一個摺疊,並將摺疊的結果作爲VARCHAR返回,類似於C#中的.Aggregate或Common Lisp中的Concatenate。無限可選參數
用於這種功能我的(程序)的僞代碼如下:
- 限定VARCHAR可變
- 的foreach非空參數將其轉換爲VARCHAR,並將其添加到VARCHAR可變
- 返回VARCHAR變量作爲函數的結果
在MS-SQL中是否有這樣的地道方式? MS-SQL Server有類似於C#params/Common Lisp & rest關鍵字嗎?
- 編輯 -
是否有可能做類似這樣的不使用表值參數的東西,這樣對函數的調用可能看起來像:
MY_SCALAR_FUNC(「A」, NULL,'C',1)
而不是每次調用該函數時都必須經過設置和插入到新的臨時表中。
對不起,我應該更清楚。我特別希望避免使用表值參數,我會更新問題以使其更清晰。 –
@BenH我編輯了一個選項,只適用於字符串連接,並且只在SQL 2012上有幫助嗎? – Meff
這確實有幫助,謝謝Meff。這讓我想知道他們是如何實現這個功能的。我們並沒有將2012用於這個特定的項目,但我們對其他人並不瞭解,因此謝謝。 –