如何创建输入字符串多值的t-sql标量值函数 return string1 + string2 + string3。
答案 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')