繁体   English   中英

Oracle 12c-有条件的地方

[英]Oracle 12c - conditional where

我有这样的查询:

            SELECT COUNT(*) 
              INTO v_count 
              FROM some_table 
             WHERE some_column = v_some_data
               AND other_col = v_other_data

我想仅在v_other_date != 'A'使用子句“ AND other_col = v_other_data ”。

这是最好的方法吗?

        SELECT COUNT(*) 
          INTO v_count 
          FROM some_table 
         WHERE some_column = v_some_data
           AND other_col = case when v_other_data = 'A'
                                then other_col
                                else v_other_date
                           end

不要在where子句中使用case 您可以随时用布尔逻辑替换它

WHERE some_column = v_some_data
AND (v_other_date = 'A' OR other_col = v_other_data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM