【发布时间】:2015-06-25 12:31:39
【问题描述】:
这里我有 3 列:ID(NUMBER)、PART_NAME(VARCHAR) 和 PART_VALUE(CLOB)(所有三列都构成一个主键)。我有一个场景,我应该检查同一列的多个条件。 例如:对于特定 ID,我应该检查不同的 Part_Name 及其对应的 part_value。我知道以下是错误的。仅供参考,我包括
SELECT COUNT(0)
FROM MY_TABLE
WHERE ID = 'XYZ'
AND (
(
(
PART_TYPE='SW NUT Prod'
AND DBMS_LOB.COMPARE(PART_VALUE,'NUT and Non-Standard Key')=0
)
OR
(
PART_TYPE='SW NUT Prod'
AND DBMS_LOB.COMPARE(PART_VALUE,'LIMES Key and Document')=0
)
OR (
PART_TYPE='SW NUT Prod'
AND DBMS_LOB.COMPARE(PART_VALUE,'LIMES Physical Key and Document')=0
)
)
AND (
PART_TYPE='TRIM'
AND DBMS_LOB.COMPARE(PART_VALUE,'FALSE')=0
)
)
我们必须实现这一点。我试过使用自关节。但这并没有帮助,因为我们有非常大的查询,我们应该一次检查 10 个 Part_name。任何建议都会帮助我
【问题讨论】:
-
我们需要更多信息...您引用的查询会产生什么?桌子长什么样?你能安装一个显示基本表数据的 sqlfiddle 吗?
-
我将从我的参考查询中获取计数,并根据该值,我必须执行不同的操作。 Sqlfiddlelink
-
那么这是
having子句可以执行的操作吗? -
Having 条款无法帮助我猜。它必须满足所有条件..
-
为什么不能在
where条件下使用having子句?