case - 带有 In 子句的 where 子句中的 case 语句
问题描述
我尝试在 where 子句中使用 case 语句,它需要根据传递给我的过程的参数值过滤我的 where 条件,但它没有用
其中 p_parameter ='Y' then 'Y' else ('Y','N') END in Hidden_flag_column 的情况
解决方案
尝试
where
case when p_parameter ='Y'
then case when Hidden_flag_column = 'Y' then 1 else 0 end
else case when Hidden_flag_column in ('Y','N') then 1 else 0 end
END = 1
p_parameter = 'Y' 以及 'N' 和 Hidden_flag_column = 'N' 的示例。
select * from dual
where
case when 'N' ='Y'
then case when 'N' = 'Y' then 1 else 0 end
else case when 'N' in ('Y','N') then 1 else 0 end
END = 1
给出 1 行,而
select * from dual
where
case when 'Y' ='Y'
then case when 'N' = 'Y' then 1 else 0 end
else case when 'N' in ('Y','N') then 1 else 0 end
END = 1
给出 0 行。
推荐阅读
- c - 如何合并两个不重复的数组?
- c++ - system() 在 for 循环 c++ 中不起作用
- swift - Swift SpriteKit,不能多次发射子弹
- c# - 类的“搜索引擎”
- python - 在 isin() 中处理空字符串的 Pandaic 方法
- android - 如何在谷歌地图中显示谷歌卫星按钮?
- css - 图标题与图像边距对齐
- c++ - 如何更改 libstdc++.so.6 的版本?
- python - Pandas pd.Series.isin 性能与集合与数组
- c# - 是否可以从上次成功构建 IIS 服务器应用程序池(生产)运行 Asp.net Web 应用程序(Web 表单应用程序)