0

私は t-sql プログラミングが初めてです。Java、Javascript、その他多数のプログラミング言語のバックグラウンドがあります。変数の値を設定しようとしてい@notesます。私のコードは以下です。

基本的に、私がやりたいことは、とが null でない@notes場合に変数を設定することです。およびが渡す値であることを確認するために、print ステートメントを追加しました。@minBatch@maxBatch@minBatch@maxBatch

要するに、次のコードの何が問題なのですか?

    @メモを設定 =
          場合
            @minBatch != null および @maxBatch != null の場合
                場合
                  @minBatch != @maxBatch の場合
                    '開始バッチ: ' + cast(@minBatch as varchar(8)) + ' 終了バッチ: ' + cast(@maxBatch as varchar(8))
                  そうしないと
                    「バッチ」 + キャスト (@minBatch as varchar(8))
                終わり
            そうしないと
              ヌル
          終わり
4

1 に答える 1

2

is nullの代わりに使用=null

SELECT @notes = 
     CASE 
         WHEN (@minBatch + @maxBatch) is not null --Comment: if any null result is null 
              THEN
                 CASE @minBatch WHEN @maxBatch --@min or @max still can be null
                      THEN 'Batch ' + cast(ISNULL(@minBatch,0) as varchar(8))
                      ELSE 'Start batch: ' + 
                            cast(ISNULL(@minBatch,0) as varchar(8)) + ' End batch: ' + 
                            cast(ISNULL(@maxBatch,0) as varchar(8))
                 END
         ELSE null
     END

編集:使用して簡略化(@minBatch + @maxBatch) is not null

--Comment: if any null result is null 
于 2012-12-11T19:04:19.573 に答える