“[DB2/NT] SQL0952N 由于中断,处理被取消。 SQLSTATE=57014
现在在net程序中报错“[DB2/NT] SQL0952N 由于中断,处理被取消。 SQLSTATE=57014
”
但在db2数据库中慢点,但不报错。
视图YuanGong_tong:
CREATE VIEW DB2ADMIN.YuanGong_tong
AS with s as (
select row_number()over(partition by fk_jk_id order by dbr_id) id1,
row_number()over(partition by fk_jk_id order by dbr_id) id2, mch,
fk_jk_id
from DB2ADMIN.YUANGONG) , t(fk_jk_id,id1,id2,mch) as (
select fk_jk_id,id1,id2,cast(mch as varchar(100))
from s
where id1 =1
and id2=1
union all
select t.fk_jk_id,t.id1+1,t.id2,cast(s.mch||','||t.mch as varchar(100))
from s, t
where s.id2=t.id1+1
and t.fk_jk_id = s.fk_jk_id ) select fk_jk_id,mch
from t
where t.id1= (
select max(id1)
from s
where s.fk_jk_id = t.fk_jk_id)
表-员工表YuanGong,有8万条数据
列名:id fk_jk_id mch
建表语句:
CREATE TABLE DB2ADMIN.YUANGONG
(FK_JK_ID INTEGER,
dbr_id INTEGER,
MCH VARCHAR(100),
id INTEGER NOT NULL GENERATED ALWAYS
AS IDENTITY (START WITH 1, INCREMENT BY 1, CACHE 20, NO CYCLE, NO ORDER)
)
建好后,用视图查询比较慢,但用with语句直接查就能快点,有更好的办法吗?
with语句是不是效率低啊。如何让这个查询这个视图更快?或者有其他方法实现单FK_JK_ID相同,显示出所有mch为一个字段。
FK_JK_ID MCH
111 张三
111 李四
222 王五
333 理查德
111 酒法子
222 王六
显示为:
111 张三,李四,酒法子
222 王五,王六
333 理查德