1

我的功能基本条件有问题if..我有这样的事情

IF  LEFT(@text, 1) = '#'
        BEGIN
            /* trim first character if is '#' */
            RETURN RIGHT(@text,LEN(@text)-1)
        END
    ELSE
        BEGIN
            RETURN @text
        END
    END

控制台输出告诉我这个

关键字“IF”附近的语法不正确。关键字“END”附近的语法不正确。

我想知道问题出在哪里。我可以像这样简化 if 条件吗?

IF  LEFT(@text, 1) = '#'  RETURN RIGHT(@text,LEN(@text)-1)
ELSE RETURN @text

谢谢

编辑:现在我有这个功能

CREATE FUNCTION Trimming (@text VARCHAR(255))
RETURNS VARCHAR(255)
AS
BEGIN
    DECLARE @TrimText AS VARCHAR(255) ;

    SET @TrimText=LTRIM(RTRIM(@text)
    IF  LEFT(@TrimText, 1) = '#'
        BEGIN
            RETURN RIGHT(@TrimText,LEN(@TrimText)-1)
        END
    ELSE
        BEGIN
            RETURN @TrimText
        END
END

和控制台说

关键字“IF”附近的语法不正确。

4

2 回答 2

1

最后一个END不是必需的,因为 anIF不需要END. 此外,由于您在 中只有一个语句,而在 中只有一个语句IF,因此ELSE您不需要编写BEGINand END

于 2013-07-09T13:38:15.173 回答
1

您有一个附加END语句,您的查询应如下所示:

IF  LEFT(@text, 1) = '#'
BEGIN
     /* trim first character if is '#' */
      RETURN RIGHT(@text,LEN(@text)-1)
END
ELSE
BEGIN
      RETURN @text
END

http://sqlfiddle.com/#!6/270ca/4

从您的编辑

SET @TrimText=LTRIM(RTRIM(@text)

你错过了一个)

SET @TrimText=LTRIM(RTRIM(@text))
于 2013-07-09T13:39:12.553 回答