2
 SET @Result = @KriteriumTekst + 
               CASE @Operator 
                  WHEN 'LT' THEN '<'
                  WHEN 'GT' THEN '>'
                  WHEN 'NE' THEN '<>'
                  WHEN 'EQ' THEN '='
               + @Verdi + 
               CASE @Tilstand 
                  WHEN 'OG' THEN 'AND'
                  WHEN 'ELLER' THEN 'OR'

このステートメントはコンパイルされていません。何が問題なのですか。

4

4 に答える 4

4

あなたは次ENDCASE表現を誤解しています:

 SET @Result= @KriteriumTekst+CASE @Operator WHEN 'LT' THEN '<'
                                        WHEN 'GT' THEN '>'
                                        WHEN 'NE' THEN '<>'
                                        WHEN 'EQ' THEN '='
                              END

                    +@Verdi+ CASE @Tilstand WHEN 'OG' THEN 'AND'
                                            WHEN 'ELLER' THEN 'OR'
                             END
于 2012-08-09T07:46:59.817 に答える
1

コメントで指摘されているように、あなたのケースは終了する必要がありますEND

それ以外に、@Operator「LT」で@Tilstand「OG」の場合は、次のような結果になります

@KriteriumTekst + '<' + @Verdi + 'OG'

と に値を指定する@KriteriumTekst@Verdi、次のような結果になる可能性があります

@Result = '1<5OG'

その文字列で何をしたいのかを理解するのは困難です。

于 2012-08-09T07:48:06.590 に答える
0

case ステートメントを終了する必要があります。

SET @Result= @KriteriumTekst+CASE @Operator WHEN 'LT' THEN '<'
                                        WHEN 'GT' THEN '>'
                                        WHEN 'NE' THEN '<>'
                                        WHEN 'EQ' THEN '='
                                        END
                    +@Verdi+ CASE @Tilstand WHEN 'OG' THEN 'AND'
                                            WHEN 'ELLER' THEN 'OR'
                                            END
于 2012-08-09T07:47:02.357 に答える
0

それぞれにキーワードCASEが必要です ( MSDN 参照):END

declare @result nvarchar(256)
declare @KriteriumTekst nvarchar(256)
declare @Operator nvarchar(256)
declare @Verdi nvarchar(256)
declare @Tilstand nvarchar(256)

set @KriteriumTekst = 'Tekst '
set @Operator = 'LT'
set @Verdi = 'Verdi '
set @Tilstand = 'OG'
 SET @Result= @KriteriumTekst+CASE @Operator WHEN 'LT' THEN '<'
                                        WHEN 'GT' THEN '>'
                                        WHEN 'NE' THEN '<>'
                                        WHEN 'EQ' THEN '=' END
                    +@Verdi+ CASE @Tilstand WHEN 'OG' THEN 'AND'
                                            WHEN 'ELLER' THEN 'OR' END
select @result
于 2012-08-09T07:47:50.660 に答える