1

複雑な SQL クエリを作成していて、while ステートメントで結果をテストしたいと考えています。

私は次のようなことをしたい:

WHERE ( R.Expired IS NULL OR R.Expired > SYSDATE )
  AND (
    CASE
      WHEN R.Description LIKE '%SSX%' THEN TRUE
      ELSE  FALSE
    END
  ) ORDER BY R.Name

しかし、PL/SQL は、「無効な関係演算子」があると言っています (翻訳済み)。

CASE ステートメントに何か問題がありますか?

4

3 に答える 3

4

ものはCASE WHEN私には不要に見えます。

使用するだけ

AND (R.Description Like '%SSX')

デバッグの最初のルール-不必要な複雑さを避けてください。

于 2012-06-07T12:12:01.233 に答える
1

ここで何を達成しようとしているのかはわかりませんが、TRUE と FALSE を一重引用符で囲む (ブール値は SQL でサポートされていないため) か、単にAND R.Description LIKE '%SSX%'.

于 2012-06-07T12:13:18.717 に答える
1

単純:

WHERE (R.Expired IS NULL OR R.Expired > SYSDATE) AND 
      R.Description LIKE '%SSX%'
于 2012-06-07T12:15:38.750 に答える