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ステートメントがあり、クエリは次のようになります。

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 に答える