oraclesql中字段公式的DRY
Oracle中的一些SQL如下所示:oraclesql中字段公式的DRY,sql,oracle,Sql,Oracle,Oracle中的一些SQL如下所示: SELECT CASE WHEN field1 - field2 + field3 < 0 THEN 0 ELSE field1 - field2 + field3 END 我们希望指定field1-field2+field3一次,同时不改变SELECT查询的输出。有什么好办法吗 另一种方法是,如果有一个函数可以返回大于0的数值,并且对于负值也可以返回0。请使用: 像这样的。如果将其
SELECT
CASE
WHEN
field1 - field2 + field3 < 0
THEN
0
ELSE
field1 - field2 + field3
END
我们希望指定field1-field2+field3一次,同时不改变SELECT查询的输出。有什么好办法吗
另一种方法是,如果有一个函数可以返回大于0的数值,并且对于负值也可以返回0。请使用:
像这样的。如果将其包装在存储过程中,则可以返回结果
DECLARE
n number := field1 - field2 + field3;
BEGIN
CASE
WHEN
n < 0
THEN
0
ELSE
n
END CASE
END;
尝试:
DECLARE
n number := field1 - field2 + field3;
BEGIN
CASE
WHEN
n < 0
THEN
0
ELSE
n
END CASE
END;
SELECT
CASE
WHEN
expr < 0
THEN
0
ELSE
expr
END
FROM (SELECT field1 - field2 + field3 as expr
FROM ... );