- SQL code
WITH t1(u,o,num) AS ( SELECT user_id,organ_id,row_number() over(PARTITION BY user_id ORDER BY organ_id) FROM V_ORGAN_USER_INFO),t2(au,ao,anum) AS ( SELECT u,o,num FROM t1 WHERE num=1 UNION ALL SELECT t1.u,t2.ao||','||t1.o,t1.num FROM t1,t2 WHERE t1.num=t2.anum+1 AND t1.u=t2.au [color=#FF0000]AND t1.num <3[/color])SELECT au,ao FROM t2WHERE aNUM = (SELECT max(anum) FROM t2 temp WHERE temp.au=t2.au)ORDER BY t2.au;
这是一个DB2列转行的SQL,在查询的时候报 值太长,22001错误
当加上限制行数的参数AND t1.num <3就不会报错了,谁知道是怎么回事?
------解决方案--------------------------------------------------------
没有加 t1.num <3,你的代码就会无限递归