【问题标题】:SQL Function with variable parameter带可变参数的 SQL 函数
【发布时间】:2015-03-03 05:08:11
【问题描述】:

如上面的标题,我需要使用可变参数在 SQL 中创建一个函数 它主要用于将字段连接到 1 个字段中。比如:

MyConcat(1, 'xxx', 23456, 'yyyy') 将产生 '1-xxx-23456-yyyy'

MyConcat('aaa', 123, 888) 将产生 'aaa-123-888'

在另一种语言上应该很容易,但是如何在 SQL 中定义?

非常感谢。

【问题讨论】:

  • SELECT column1 + '-' + column2...
  • Select查询上可以轻松搞定吗?你还想要功能吗?
  • 你不能这样做..你必须定义为 convert(col1 as varchar) + '-' + convert(col2 as varchar) + '-' + convert(col3 as varchar) + '-' .... 你必须在每个查询中都这样做。是的,我可以在选择查询上做到这一点,但是基于此做一些内部连接在代码上非常难看
  • @Magician 所有查询都具有相同的数据类型?需要连接多少列?
  • no.. 多种数据类型,小数,varchar,数字。所需的列是可变的,具体取决于用于识别数据的字段数。一些使用 4,一些 3,一些 2。4 是我找到的最多的,还有一些我还没有检查过的表。所以也许还有更多

标签: sql-server sql-server-2008 concatenation


【解决方案1】:

根据您的要求,您可以像这样创建自定义的CLR 函数

https://msdn.microsoft.com/en-us/library/91e6taax(v=VS.90).aspx

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多