【问题标题】:Add condition in SQL query based on table valueSQL查询中根据表值添加条件
【发布时间】:2019-06-03 15:42:24
【问题描述】:

我使用 oracle 作为我的数据库。我想在基于表数据的 sql 查询中添加条件。在表中,如果 CT_GENERAL 为 1,那么我想在我的 sql 查询中添加另一个条件。(CST_GENERAL = USER ARGUMENT)。

从 ch_caseinfo 中选择 * 其中 ct_general = 1 时的情况 然后 cst_general = %3 结束

%3 = 资金

//表结构 //CH_CASEINFO

音量 ID | CT_ADVERSE | CT_GENERAL | CT_HA | CT_MI | CST_GENERAL | CST_MI

149634          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
161077          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
161147          0          1          0          1 Funding          Composition/ingredients                                                                                                                                                                                                                                        
161268          0          1          0          0 Funding                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
161306          0          1          0          0 Manufacturing                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
240131          0          1          1          0 Funding                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
239364          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
239364          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
147434          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
147466          0          0          0          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
158990          0          1          0          1 Funding          Administration                                                                                                                                                                                                                                                 

 98863          1          1          1          1 Funding          Disposal                                                                                                                                                                                                                                                       
159757          1          1          1          1 Funding          Disposal                                                                                                                                                                                                                                                       
 98863                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
191039          1          1          0          0 Other                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
 97007          0          0          0          0     

ORA-00905: 缺少关键字 00905. 00000 - “缺少关键字”

【问题讨论】:

    标签: sql database oracle


    【解决方案1】:

    当您不想包含过滤器(CT_GENERAL 为 0)时,您需要形成 where 子句来评估为真的表达式。考虑下面的示例,如果 ct_general = 0,则 cst_general 将始终等于 cst_general(除非 null -- 如果有可能,则需要容纳 null)。

    SELECT *
    FROM ch_caseinfo
    WHERE CASE WHEN ct_general = 0 THEN cst_general ELSE USERARGUMENT END = cst_general
        AND OTHERCRITERIA = CRITERIA
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多