1

私は解決しようとしている非常に基本的な問題を抱えています (とにかく私にとっては基本的な問題です)、コードの一部がスタンドアロンで機能する理由を理解するのに苦労していますが、それを IF ステートメントでラップすると機能しませんだ。

これはうまくいきます:

SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB

ただし、IF ステートメントで使用しようとすると、次のようになります。

IF @FILTERBY = '2'
  BEGIN
    (SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB)
  END

「キーワード「ORDER」付近の構文が正しくありません」というエラーが表示されます

私はいくつかの検索を行いましたが、これが機能しない理由を理解できないようです。返された結果セットを並べ替える別の方法はありますか?

4

3 に答える 3

2

括弧を外す

そのようです:

IF @FILTERBY = '2'
  BEGIN
    SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB
  END
于 2013-03-06T00:00:19.240 に答える
1

( と ) を削除します。

IF @FILTERBY = '2'
BEGIN
    SELECT DISTINCT H.FB FROM I_HSE H WHERE H.AC IN (@AC) ORDER BY H.FB
END
于 2013-03-06T00:00:19.770 に答える
1

SELECT を囲む括弧を削除します

于 2013-03-06T00:00:36.567 に答える