为什么在Oracle中无法正常工作的情况

程序员类型

我有一个查询,如下所示。

 select * from tbl a
    WHERE    a.device_cat =
                     (CASE (SELECT   :VIEW1
                              FROM   DUAL
                             WHERE   :VIEW1 IN
                                           (SELECT   DISTINCT version
                                              FROM   tbl2))
                         WHEN NULL
                         THEN
                            NULL
                         ELSE
                            DECODE (:device_cat, 'ALL', a.device_cat, :device_cat)
                      END)

因此,当下面的查询为空时,a.device_cat应该为空,如果是,则上面的查询将始终返回空记录。但是,当a.device_cat为null时,记录肯定存在。请帮我!谢谢!

 (SELECT   :VIEW1
                                  FROM   DUAL
                                 WHERE   :VIEW1 IN
                                               (SELECT   DISTINCT version
                                                  FROM   tbl2)  
Olesya Razuvayevskaya

您不能像这样将其与null进行比较:

   a.device_cat =null

试试这个:

select * from tbl a
     WHERE    nvl(a.device_cat, 0) =
                 nvl((CASE (SELECT   :VIEW1
                          FROM   DUAL
                         WHERE   :VIEW1 IN
                                       (SELECT   DISTINCT version
                                          FROM   tbl2))
                     WHEN null
                     THEN
                        null
                     ELSE
                        DECODE (:device_cat, 'ALL', a.device_cat, :device_cat)
                  END), 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我对Oracle的JPA中的悲观锁定无法正常工作

为什么我的getTimestamp()方法在php中无法正常工作?

为什么高度:0在CSS定义中无法正常工作

为什么我的包裹中的功能无法正常工作

为什么在webview中的javascript无法正常工作?

为什么接头在angular js中无法正常工作

为什么我的代码中的fprintf()函数无法正常工作?

为什么if块中的条件无法正常工作?

毕加索无法在android 10中正常工作。为什么?

为什么这种简单的比较在JavaScript中无法正常工作?

为什么类型转换在Swift 2.0中无法正常工作?

为什么sed中的\ d无法正常工作?

为什么Skimage中的'imshow'在移位时无法正常工作

为什么循环/分组在jQuery中无法正常工作

为什么流查看在 HashMap 中无法正常工作

为什么正向遍历for循环在JavaScript中无法正常工作

为什么Docker容器中的Django无法正常工作?

为什么注释在Cartopy中无法正常工作?

为什么“插入或更新”中的命令更新无法正常工作?

为什么JQuery中的.join()无法正常工作?

为什么在JavaScript中的indexOf无法正常工作?

为什么同步在此代码中无法正常工作?

为什么我在jquery中的focus()无法正常工作?

为什么Vue中的@mouseover操作无法正常工作

为什么JavaScript无法在Rails 6中正常工作?

为什么OrWhere在Laravel中无法正常工作

为什么C中的float无法正常工作?

为什么我在CSS中的轻松过渡无法正常工作?

为什么我的React中的clearInterval无法正常工作?