用oracle写条sql,要求: 从外界传一个变量到sql里面,然后根据这个变量的值进行以下操作:
(1)。如果这个变量的值为 0 的话,让这条sql返回的值为这个表里面的某一个字段的值的总和;
(2)。如果这个变量的值不为 0 的话,让这条sql返回的值为这个表里面的这个字段(同1中的字段)。 例如: 变量为temp,字段为ext1。 错误的sql:select case when trim(:temp)='0' then sum(ext1) else ext1 from dual;
--为了更清楚的表达上面叙述的意思,故意写个错误的sql。 有能写出来的,非常感谢!急!!!!!!
(1)。如果这个变量的值为 0 的话,让这条sql返回的值为这个表里面的某一个字段的值的总和;
(2)。如果这个变量的值不为 0 的话,让这条sql返回的值为这个表里面的这个字段(同1中的字段)。 例如: 变量为temp,字段为ext1。 错误的sql:select case when trim(:temp)='0' then sum(ext1) else ext1 from dual;
--为了更清楚的表达上面叙述的意思,故意写个错误的sql。 有能写出来的,非常感谢!急!!!!!!
下面的是可以执行的:SELECT CASE WHEN &VAR = 0 THEN SUM(MyNum)
ELSE max(MyNum) END
FROM T132;
from dual
1 tablename 替换成 你的表
2 如果这个变量的值不为 0 的话,让这条sql返回的值为这个表里面的这个字段(同1中的字段)。
这个逻辑有问题的,按照上下文我认为应该是返回 在某个字段(colname)为 temp 的 那个字段值