我需要帮助创建一个TSQL函数

我需要帮助创建一个TSQL函数,tsql,Tsql,我需要一个函数创建和。该函数应采用1个varchar255参数。它应该返回一个varchar255参数。函数的目的是获取输入,将“&”替换为“&;”并返回结果 示例: 输入:'my dog&me'返回:'my dog&;我的 输入:“我的狗和我”返回:“我的狗和我”标量值函数: CREATE FUNCTION fReplaceAmpersand (@InputString VARCHAR(255)) RETURNS VARCHAR(1000) AS BEGIN RETUR

我需要一个函数创建和。该函数应采用1个varchar255参数。它应该返回一个varchar255参数。函数的目的是获取输入,将“&”替换为“&;”并返回结果

示例:

输入:'my dog&me'返回:'my dog&;我的


输入:“我的狗和我”返回:“我的狗和我”

标量值函数:

CREATE FUNCTION fReplaceAmpersand (@InputString VARCHAR(255))
RETURNS VARCHAR(1000)
AS  
BEGIN
    RETURN REPLACE(@InputString, '&', '&')
END
GO
用法:

SELECT dbo.fReplaceAmpersand(MyText)
FROM MyTable
从性能角度来看,如果表非常大,最好使用表值函数和外部应用:

CREATE FUNCTION fReplaceAmpersand (@InputString VARCHAR(255))
RETURNS TABLE
AS  
    RETURN 
    SELECT REPLACE(@InputString, '&', '&') AS OutputString
GO
--  ----------------------------------------------------
SELECT a.OutputString
FROM MyTable m
    OUTER APPLY dbo.fReplaceAmpersand(m.MyText) a

非过程表值函数的运算速度比标量值函数快几倍。

这就是REPLACE的作用。。。使用或包装它。这是由表示层更好地处理的事情。如果不是所有与web相关的编程语言和环境中都有内置函数,您可以在这些语言和环境中使用它们,这样做会更好。这是家庭作业吗?如果是这样的话,请注意,如果你只是让别人为你写,你就不会学到很多东西。NP,很高兴为你提供帮助。请注意,返回的值更大,因为对于每个替换操作,通过添加amp;会使字符串变长四个字符;。从技术上讲,它应该返回varchar1275,以防它们通过255个安培数,但这似乎是可行的。如果你有妄想症,你可以把它改成LEFTREPLACE…,1000。
CREATE FUNCTION fReplaceAmpersand (@InputString VARCHAR(255))
RETURNS TABLE
AS  
    RETURN 
    SELECT REPLACE(@InputString, '&', '&') AS OutputString
GO
--  ----------------------------------------------------
SELECT a.OutputString
FROM MyTable m
    OUTER APPLY dbo.fReplaceAmpersand(m.MyText) a