case in where 子句的特定值 oracle
case in where clause for specific values oracle
我们有 2 个 table、table A 和 table B,
我们在 select 语句中获取 6 列,
这些是列
- A.current_value,
- A.original_value,
- A.current_tax_lot,
- B.current_tax,
- B.cost_tax,
- B.current_tax_cost
现在我们必须在查询中加入数学条件:
A.current_value – B.current_tax 在 +/- 2 以内,
如果A.original_value为空使用A.current_tax_lot执行公式:
2a。 A.current_tax_lot(从上面)– B.cost_tax 在 +/- 10 之内,或者
2b。 A.current_tax_lot(从上面)– current_tax_cost 在 +/-10 以内)
如果不理解 block/calculation,请适当地替换术语/表达。
Select ...
Where
ABS(NVL(A.current_value, A.current_tax_lot) – B.current_tax) <=2
AND
(
ABS(A.current_tax_lot – B.cost_tax) <= 10
OR
ABS(A.current_tax_lot – B.current_tax_cost) <= 10
);
我们有 2 个 table、table A 和 table B,
我们在 select 语句中获取 6 列, 这些是列
- A.current_value,
- A.original_value,
- A.current_tax_lot,
- B.current_tax,
- B.cost_tax,
- B.current_tax_cost
现在我们必须在查询中加入数学条件:
A.current_value – B.current_tax 在 +/- 2 以内,
如果A.original_value为空使用A.current_tax_lot执行公式:
2a。 A.current_tax_lot(从上面)– B.cost_tax 在 +/- 10 之内,或者
2b。 A.current_tax_lot(从上面)– current_tax_cost 在 +/-10 以内)
如果不理解 block/calculation,请适当地替换术语/表达。
Select ...
Where
ABS(NVL(A.current_value, A.current_tax_lot) – B.current_tax) <=2
AND
(
ABS(A.current_tax_lot – B.cost_tax) <= 10
OR
ABS(A.current_tax_lot – B.current_tax_cost) <= 10
);