Oracle11g 甲骨文中的In子句
我有这样的选择查询Oracle11g 甲骨文中的In子句,oracle11g,Oracle11g,我有这样的选择查询 SELECT * FROM ACTITIVY WHERE CODE in ('L','D') 我没有硬记录参数中的值,而是创建了一个参数表。参数表具有以下值 CODE | CODE_VAL | ACTIVE TRIGGER_XM | 'L','D' | Y 因此,当我重写查询时,如下所示 select * from ops_ACTITIVY WHERE CODE IN ( SELECT CODE_VAL FROM OPS_CON
SELECT * FROM ACTITIVY WHERE CODE in ('L','D')
我没有硬记录参数中的值,而是创建了一个参数表。参数表具有以下值
CODE | CODE_VAL | ACTIVE
TRIGGER_XM | 'L','D' | Y
因此,当我重写查询时,如下所示
select * from ops_ACTITIVY WHERE CODE IN (
SELECT CODE_VAL FROM OPS_CONFIG_PARAMETER
WHERE CODE='TRIGGER_XML' AND ACTIVE='Y')
如何解决这个问题根本不管用???您可以这样尝试:
select * from ops_ACTITIVY t1
WHERE t1.CODE IN ( SELECT CODE_VAL FROM OPS_CONFIG_PARAMETER t2
WHERE t2.CODE='TRIGGER_XML' AND t2.ACTIVE='Y' )
select * from activity a where (
select instr(b.code_val, a.code)
from param b
where b.code = 'TRIGGER_XM'
AND active = 'Y'
) > 0;
在检查另一个字符串中是否存在字符串时,可以尝试以下操作:
select * from ops_ACTITIVY t1
WHERE t1.CODE IN ( SELECT CODE_VAL FROM OPS_CONFIG_PARAMETER t2
WHERE t2.CODE='TRIGGER_XML' AND t2.ACTIVE='Y' )
select * from activity a where (
select instr(b.code_val, a.code)
from param b
where b.code = 'TRIGGER_XM'
AND active = 'Y'
) > 0;
但它很可能只在使用singlechar代码的情况下才起作用
为我工作过:您真正使用的是哪张桌子?行动还是行动 假设这些表相同,我建议您的参数表具有以下值:
| CODE | CODE_VAL | ACTIVE |
| ----------- ----------- -------------
| TRIGGER_XM | L | Y |
| TRIGGER_XM | D | Y |
它更易于管理,而且我认为分离L和D的代码值更有意义,以防您只需要选择其中一个
现在,下面的查询肯定会从ops_activity表中获取具有“L”和“D”值的代码:
你到底在用哪张桌子?行动还是行动?