我需要使用HSQL执行以下查询(ORACLE工作正常):
select t.name as sh_name,
b.name as sh_bName
from PERSON t
left outer join TRANS tr on t.id=tr.tid
left outer join AGREEM agr on tr.tripNumber=SUBSTR(agr.coll_external,1,4)
left outer join PERSON b on (b.TYP='BROKER' and agr.broker_id = b.id)
where t.TYP='TRADER'
我收到以下错误:not allowed in OUTER JOIN condition in statement
。问题来自SUBSTR
的使用,没有它我没有收到任何错误。在Oracle中,上述声明工作得很好。
知道如何在HSQL的join子句中使用SUBSTR
吗?
答案 0 :(得分:0)
这是旧版HSQLDB的限制。
较新版本2.x允许在OUTER JOIN条件下使用SUBSTR或任何其他功能。
最新版本还支持兼容模式,以改进对Oracle数据类型和功能的处理。