我可以吗;while=test";SQL中的结果?

我可以吗;while=test";SQL中的结果?,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,我正在构建一个复杂的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表示它有一些“无效的关系运算符”(已翻译) 我的案例陈述有什

我正在构建一个复杂的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表示它有一些“无效的关系运算符”(已翻译)


我的案例陈述有什么问题吗?

当我觉得
东西不必要时的
案例

只用

AND (R.Description Like '%SSX')

调试的第一条规则-避免不必要的复杂性。

当我觉得
东西不必要时的
情况

只用

AND (R.Description Like '%SSX')

调试的第一条规则-避免不必要的复杂性。

不确定您试图在这里实现什么,但您可以尝试将TRUE和FALSE括在单引号中(因为SQL中不支持布尔值),或者简单地编写类似于
和R的描述,例如“%SSX%”

不确定您试图在这里实现什么,但您可能可以尝试将TRUE和FALSE括在单引号中(因为SQL中不支持布尔值),或者简单地编写类似于
的内容和类似于“%SSX%”的R.Description
简单:

WHERE (R.Expired IS NULL OR R.Expired > SYSDATE) AND 
      R.Description LIKE '%SSX%'
简单:

WHERE (R.Expired IS NULL OR R.Expired > SYSDATE) AND 
      R.Description LIKE '%SSX%'