Function 在子串组合中使用ltrim和rtrim

Function 在子串组合中使用ltrim和rtrim,function,arguments,substring,Function,Arguments,Substring,嘿,我正在进行另一个项目转换,有一行是用Oracle SQL编写的,我正在尝试将其转换为MS SQL: Oracle PL/SQL: IF LTRIM(sCmtStr) IS NOT NULL THEN sTrimStr := ' '||SUBSTR(RTRIM(LTRIM(sCmtStr),'; '),1,999); ELSE sTrimStr := NULL; MS T-SQL: IF ltrim(@sCmtStr) IS NOT NULL

嘿,我正在进行另一个项目转换,有一行是用Oracle SQL编写的,我正在尝试将其转换为MS SQL:

Oracle PL/SQL:

IF LTRIM(sCmtStr) IS NOT NULL THEN
        sTrimStr := ' '||SUBSTR(RTRIM(LTRIM(sCmtStr),'; '),1,999);
    ELSE
        sTrimStr := NULL;
MS T-SQL:

IF ltrim(@sCmtStr) IS NOT NULL

     SET @sTrimStr = ' ' + ISNULL(substring(rtrim(ltrim(@sCmtStr), '; '), 1, 999), '')
  ELSE 
     SET @sTrimStr = NULL
我得到以下错误:

Msg 174, Level 15, State 1, Procedure TRIMCOMMENT, Line 12
The rtrim function requires 1 argument(s).
有什么想法吗?谢谢。

RTRIM()不接受2个参数;它只能从字符串的末尾修剪空格


另一方面,TRIM()可以指定其他要删除的字符。但是,它将从字符串的两端删除字符,因此如果您只想从字符串的末尾删除字符,则可能需要进行一些修改。

错误相当明显。rtrim接受1个参数。你给了它两个。