实质上,我希望能够创建一个接受可变数量参数的标量函数,并将它们连接在一起以返回单个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用于这个特定的项目,但我们对其他人并不了解,因此谢谢。 –