如何在Oracle中的case语句中添加两个用逗号分隔的引号的字符

     2023-05-09     142

关键词:

【中文标题】如何在Oracle中的case语句中添加两个用逗号分隔的引号的字符【英文标题】:How add two characters with quotes separated by comma in case statement in Oracle 【发布时间】:2020-02-26 17:11:31 【问题描述】:

我有一个场景,当案例验证成功时,我从案例语句中选择两个字符“P”,“E”,即“ALL”=“ALL” 以下是我想要实现的目标:

select location,
grade,
City,
process_flag,
from table_v 
where process_flag in (
Case 
when :process_type = 'Processed' then 'P'
when :process_type = 'ERROR' then 'E'
when :process_type = 'ALL' then 'P','E'
ELSE process_flag
END;

Process_type 可以传递为 'Processed'、'ERROR'、'ALL'

怎样才能实现?

【问题讨论】:

【参考方案1】:

您可以使用ored 条件:

where 
       :process_type = 'Processed' and process_flag = 'P'
    or :process_type = 'ERROR'     and process_flag = 'E'
    or :process_type = 'ALL'       and process_flag in ('P', 'E')

【讨论】:

【参考方案2】:

您可以在IN 子句中使用多个值:

WHERE ( :process_type, process_flag ) IN (
        ( 'Processed', 'P' ),
        ( 'ERROR',     'E' ),
        ( 'ALL',       'P' ),
        ( 'ALL',       'E' ),
      )

如果你想匹配 CASE 语句的 ELSE 子句,那么:

WHERE ( :process_type, process_flag ) IN (
        ( 'Processed', 'P' ),
        ( 'ERROR',     'E' ),
        ( 'ALL',       'P' ),
        ( 'ALL',       'E' ),
      )
OR    :process_type NOT IN ( 'Processed', 'ERROR', 'ALL' )

【讨论】:

如何在oracle sql中的where条件中使用case语句?

】如何在oraclesql中的where条件中使用case语句?【英文标题】:Howtousecasestatementinwhereconditioninoraclesql?【发布时间】:2019-12-2008:11:22【问题描述】:SELECTDY,ME,NONMEFROM(SELECTLEVEL,TO_CHAR(SYSDATE+ROWNUM,\'DAY\')DY,0ME,2NONMEFROMDUALCONNECTBYLEVEL 查看详情

在 Switch 中的 Case 语句中添加附加条件

】在Switch中的Case语句中添加附加条件【英文标题】:AddaadditionalconditiontoCaseStatementinSwitch【发布时间】:2013-01-1006:49:26【问题描述】:是否可以在C#中为Switch语句添加额外的条件,如下所示switch(MyEnum)case1:case2:case3&&Year>2012... 查看详情

where 子句 oracle 中的 case 语句

】where子句oracle中的case语句【英文标题】:Casestatementinwhereclauseoracle【发布时间】:2019-08-1920:43:28【问题描述】:在where子句中,我有两个选项1)status=\'N\'andtype=\'1\'和2)status=\'Y\'andtype=\'1\'基于参数我需要执行一个选项:wherecasewhen(... 查看详情

Oracle 中 CASE WHEN 语句中的 SUM

】Oracle中CASEWHEN语句中的SUM【英文标题】:SUMwithinCASEWHENStatementinOracle【发布时间】:2018-02-2323:07:22【问题描述】:我有一个这样的查询,O_ID数据类型是VARCHAR,f_units数据类型是Number我在下面做了以避免除数为零错误,当我这样做... 查看详情

我如何理解 join 语句中出现的逗号?

】我如何理解join语句中出现的逗号?【英文标题】:HowdoIunderstandthecommashappeninginjoinstatements?【发布时间】:2021-03-0702:48:13【问题描述】:我遇到了一个传奇的代码,并且一直在努力用更简单的术语来分解它。传说中的代码完美... 查看详情

如何从oracle sql中的选择计数中对rownum使用case语句?

】如何从oraclesql中的选择计数中对rownum使用case语句?【英文标题】:Howtouseacasestatementonrownumfromaselectcountinoraclesql?【发布时间】:2020-07-2722:02:43【问题描述】:我对SQL有点陌生,并且有一个关于where子句中基于count(*)的case语句的... 查看详情

在 oracle 中的 case 或 decode 语句中使用 sum

】在oracle中的case或decode语句中使用sum【英文标题】:Usingsuminsideacaseordecodestatementinoracle【发布时间】:2014-09-1911:20:47【问题描述】:我试图寻找线索,但在任何地方都没有得到满意的答案。我的问题是我有一个巨大的select语句,... 查看详情

在 ORACLE 中,有没有办法使用两个表将多行行连接成一个行,其中最终值用逗号分隔?

】在ORACLE中,有没有办法使用两个表将多行行连接成一个行,其中最终值用逗号分隔?【英文标题】:Isthereaway,inORACLE,tojoinmultiplerowlinesintoasingleone,usingtwotables,wherethefinalvaluesareseparatedbycommas?【发布时间】:2010-12-0620:51:09【问题描... 查看详情

如何在oracle数据库中的表里批量插入记录

参考技术A1.如果是对其它数据表中进行插入,可利用语句insertintoA(字段名)select相应的字段名fromB;commit;2.如果是从其它文档进行批量插入,可把文档导入都oracle的临时表,可通过复制黏贴的方法,把相应字段的数据复制到临时... 查看详情

oracle如何在CASE WHEN ELSE语句中使用select语句?

】oracle如何在CASEWHENELSE语句中使用select语句?【英文标题】:HowtouseselectstatementinCASEWHENELSEstatementinoracle?【发布时间】:2015-05-0611:34:12【问题描述】:我有一张表USER,内容如下:USER_IDUser_NameCityzipPR_USER_ID----------------------------------... 查看详情

PL/SQL 中 CASE 语句中的堆栈条件

...【发布时间】:2008-11-2210:24:45【问题描述】:我正在使用Oracle10g,我正在尝试在CASE语句中“堆叠”条件,就像我在C++中所做的那样:case1:case2://instructionsbreak;即为两个不同的成功条件执行相同的代码块。我试过了:WHEN1,2THENWHEN1O 查看详情

SQL Case 语句中的两个值相减

】SQLCase语句中的两个值相减【英文标题】:SubtractingtwovaluesinSQLCaseStatement【发布时间】:2013-12-2419:26:00【问题描述】:我需要在case语句中减去我正在计算的两个值,但我似乎无法完成它。这是我正在尝试做的事情,我得到的错... 查看详情

如何在 SQL 的 WHERE CLAUSE 中的 CASE 内添加 sql“BETWEEN”条件

】如何在SQL的WHERECLAUSE中的CASE内添加sql“BETWEEN”条件【英文标题】:Howtoaddsql"BETWEEN"conditionsinsideCASEwithinWHERECLAUSEinSQL【发布时间】:2021-02-1109:31:59【问题描述】:我有一个sql查询,我需要根据一个条件在where子句中添加不... 查看详情

Oracle:在 Where 子句中使用 Case 语句

】Oracle:在Where子句中使用Case语句【英文标题】:Oracle:UsingCaseStatementinWhereClause【发布时间】:2017-03-2812:56:06【问题描述】:在Oracle12(和APEX)中,我遇到了WHERE子句中的CASE语句的问题。该场景是一个主表、ORDER和一个PRODUCTS_BOUGH... 查看详情

sql语句中case,when,then的用法

参考技术ASelectCase语句在有多个可能的条件必须被检查时使用。与If语句不同,SelectCase语句在找到匹配的Case表达式并执行了Case表达式和下一个Case表达式之间的语句后将立即跳出。如果没有匹配的Case表达式,将执行其它语句。Cas... 查看详情

case语言怎么用

...,x轴,y轴,如果继续加,就会打印多出一个矩形区域。swift中的switch一定的包含变量的所有情况,如果coordinate4是(10,10)然后把default注释点,就会报错,因为上面4个条件是不能满足(10,10)这个点。6、也可以没有default。这里... 查看详情

如何在光标的 select 语句 where 子句中传递逗号分隔值

】如何在光标的select语句where子句中传递逗号分隔值【英文标题】:HowcanIpasscommaseparatedvalueincursor\'sselectstatementwhereclause【发布时间】:2019-02-2009:38:45【问题描述】:我有以下块,它有一个光标和一个选择查询。我想传递选择的输... 查看详情

如何使用Java为列表中的每个字符串添加或插入'(单引号),其中字符串用逗号分隔

】如何使用Java为列表中的每个字符串添加或插入\\\'(单引号),其中字符串用逗号分隔【英文标题】:Howtoaddorinsert\'(singlequotes)foreverystringinalistinwhichstringsareseparatedbycommasusingJava如何使用Java为列表中的每个字符串添加或插入\'(... 查看详情