WHERE DECODE中的ORA-00907错误

时间:2016-03-29 10:55:59

标签: sql oracle

我有以下查询:

SELECT TA.* 
FROM TableA TA 
WHERE DECODE(vcConfig, 'Y', TA.ColumnC IS NULL, 1 = 1); 

现在vcConfigY

但我的查询似乎与来自IS的{​​{1}}有问题。

我得到的错误是:

  

ORA-00907:缺少右括号

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

这不能这样做,你可以试试这个:

SELECT TA.*
FROM TableA TA
WHERE (TA.vcConfig = 'Y' AND TA.ColumnC IS NULL)
      OR TA.vcConfig <> 'Y'

您可以使用decode来设置值,而不是条件。

编辑:只是让您理解逻辑,如果您希望它与解码一起工作,您可以这样做:

SELECT  TA.* 
FROM    TableA TA 
WHERE   DECODE(vcConfig, 'Y', ColumnC  , null ) IS NULL;