【发布时间】:2016-01-07 16:16:26
【问题描述】:
我在 Oracle 上有以下 SQL 查询
SELECT
CASE
WHEN (SELECT DISTINCT(trim(z.m_base_acct))
FROM acc_mapping_rep z
WHERE z.m_dyn_acct=b.m_en_credit
AND z.M_REF_DATA =b.M_REF_DATA) IN 'SAMANOS'
THEN '7200000888001X'
END AS M_EN_CRDR
FROM
acc_journal_rep b
AND b.m_ref_data = 41091
AND b.m_en_date = '21-SEP-15'
AND b.m_entity = 'LN'
AND b.m_nb_trn = 0
我遇到了 oracle 错误 ORA-01427。由于我有一个条件知道我确实放置了 IN 运算符而不是相等的情况。 请指教。我需要在 case 条件中有多个值。
【问题讨论】:
-
如果您提供了一个最小化的示例或您的问题,这将更容易理解。我相信我看到了这个问题(IN 有一个值),但我真的不知道你实际上想要完成什么。
-
好的,我会一分钟
-
我想测试 case 条件中存在的 select 语句中的值(返回 3 行)并检查这些值是否等于值 SAMANOS 然后我希望该值为 7200000888001X @TomH
-
我并不是说你不会得到答案,但这个问题需要消化很多。你能试着给我们一个问题的简单例子吗?你可以使用类似 www.sqlfiddle.com 的东西来演示。
-
这样更好吗? @TomH
标签: sql oracle11g operators row oracle-sqldeveloper