例子:select a,b.c from xx ,如果前端传递过来的参数只有a字段的值,那么sql变为:select a,b,c from xx group by a 。B和C赋值为0;如果前端传递过来的参数只有a,b字段有值,那么sql变为:select a,b,c from xx group by a,b 。C赋值为0;以此类推。(公司、成本中心等等就是前端会传过来的参数。)
group by a,b 。 b在为什么值得时候group by a,b 跟 group by a 相等。
1、新建一个html文件,命名为test.html。
2、在test.html文件内,使用function声明一个函数,str为函数的参数。
3、在is_e()函数内,首先使用if语句进行null、空、undefined的情况判断,如果符合,则弹出“内容为空”的提示。
4、在is_e()函数内,再使用正则表达式,将空白字符、空格、制表符、换页符等替换为空。
5、再使用if语句判断上一步处理后的数据是否为空,如果为空,则弹出“内容为空”的提示。
6、在is_e函数外,定义一个变量str,用于保存要判断的数据,例如,这里设置str变量为一个空字符,使用is_e()函数进行判断。
直接上代码: 你自己把grop by 加上去,我就不全部写完了。
测试:
结果:
换条件再测试:
结果:
代码:
create or replace procedure test_a(a varchar2,b varchar2,c varchar2) is
q varchar2(100);
w varchar2(100);
e varchar2(100);
d varchar2(100);
begin
if a is null then q:=0;
else q:=a;
end if;
if b is null then w:=0;
else w:=b;
end if;
if c is null then e:=0;
else e:=c;
end if;
d:='select '||q||','||w||','||e||' from xx';
dbms_output.put_line(d);
end
;
本回答被提问者采纳(
@test varchar(10) = null
)
as
begin
if (@test = 'full') or (@test is null)
begin
sql 语句
end
else if (@test = 'row')
begin
sql 语句
end
end
GO