如何创建输入多值函数的标量值函数?

时间:2009-11-05 04:52:06

标签: sql-server-2005

如何创建输入字符串多值的t-sql标量值函数 return string1 + string2 + string3。

4 个答案:

答案 0 :(得分:1)

如果您不想这样,请告诉我(仅举例)

首先创建一个包含一些值的表

create table tbl (id int, col1 varchar(50),col2 varchar(50), col3 varchar(50))
insert into tbl values(1,'colval1','colval2','colval3')


CREATE FUNCTION fn_TestFunc
(   
    @param1 int
)
RETURNS  varchar(max)
AS
BEGIN   
    declare @result varchar(max)

    select @result =  Col1+ ',' + Col2 + ',' + Col3
    from tbl t
    where t.ID = @param1

    return @result


END

执行功能选择dbo.fn_TestFunc(1)

<强>输出:

Col1Val , Col2Val , Col3Val

另外1个例子

ALTER FUNCTION [dbo].[fn_TestFunc]
(
    -- Add the parameters for the function here
    @param1 int
)
RETURNS  nvarchar(max)
AS
BEGIN

    declare @result varchar(max)
    SELECT @result= 
    (
        SELECT 
            CAST(Col1 AS varchar(max)) + ',' + CAST(Col1 AS varchar(max)) + '|'
        from tbl t
                where t.ID = @param1
        FOR XML PATH ('')
    ) 
    return LEFT(@result,LEN(@result) - 1)
END

<强>输出

Col1Val , Col2Val

答案 1 :(得分:1)

CREATE FUNCTION fn_Concat
(   
    @string1 varchar(max),
    @string2 varchar(max),
    @string3 varchar(max)
)
RETURNS  varchar(max)
AS
BEGIN   
    declare @result varchar(max)

    Set @result =  @string1+ ',' + @string2 + ',' + @string3


    return @result

答案 2 :(得分:0)

或者你正在寻找这个(例子)

CREATE FUNCTION fn_MyFunc
(
    @param1 varchar(10)
)
RETURNS varchar(max)
AS
BEGIN

    declare @result varchar(max)
    set @result = @param1 + '-' + @param1 + '-' + @param1
    return @result
END
使用test-test-test

执行时,

输出select dbo.fn_MyFunc('test')

答案 3 :(得分:0)

尝试以下方法:

CREATE FUNCTION fn_Concat
(   
    @string1 varchar(max),
    @string2 varchar(max),
    @string3 varchar(max)
)
RETURNS  varchar(max)
AS
BEGIN   
    declare @result varchar(max)

    Set @result =  @string1+ ',' + @string2 + ',' + @string3


    return @result


END

--SELECT dbo.fn_Concat('aa','bb','cc')