我正在使用jaspersoft的iReport,我希望new java.util.Date()将该日期(也就是当前日期)变为该日期之前的1个月.我在文本字段表达式中写什么来实现这一点?
我有这个INSERT语句,acct_desc字段末尾似乎有尾随空格.我想知道如何防止在insert语句中出现尾随空格.
INSERT INTO dwh.attribution_summary
SELECT d.adic,
d.ucic,
b.acct_type_desc as acct_desc,
a.begin_mo_balance as opening_balance,
c.date,
'fic' as userid
FROM fic.dim_members d
JOIN fic.fact_deposits a ON d.ucic = a.ucic
JOIN fic.dim_date c ON a.date_id = c.date_id
JOIN fic.dim_acct_type b ON a.acct_type_id = b.acct_type_id
WHERE c.date::timestamp = current_date - INTERVAL '1 days';
Run Code Online (Sandbox Code Playgroud) 我正在使用Postgres从表中获取结果.我想用SQL来解决问题.
当我的postgresql查询没有返回任何结果时,我想要显示一些默认的行结果.我正在使用Jasper报告,因此我没有很多工具来捕获没有结果的事件,然后提供默认结果.
当第一个查询显示结果时,我不希望显示默认结果.目前我正在尝试使用UNION,但是Union如果第一个查询显示0结果,我希望在命令之后发生第二个查询.
这可以在SQL中完成吗?
我有一个看起来像这样的函数:
CREATE OR REPLACE FUNCTION mffcu.test_ty_hey()
RETURNS setof record
LANGUAGE plpgsql
AS $function$
Declare
cname1 text;
sql2 text;
Begin
for cname1 in
select array_to_string(useme, ', ') from (
select array_agg(column_name) as useme
from(
select column_name::text
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'crosstab_183'
and ordinal_position != 1
) as fin
) as fine
loop
sql2 := 'select distinct array['|| cname1 ||'] from mffcu.crosstab_183';
execute sql2;
end loop;
END;
$function$
Run Code Online (Sandbox Code Playgroud)
我用这个调用函数:
select mffcu.test_ty_hey()
Run Code Online (Sandbox Code Playgroud)
如何在不创建表/临时表的情况下返回sql2查询结果?