在 HSQL 左外连接子句中使用 SUBSTR
Posted
技术标签:
【中文标题】在 HSQL 左外连接子句中使用 SUBSTR【英文标题】:Use SUBSTR in HSQL left outer join clause 【发布时间】:2013-02-27 11:12:48 【问题描述】:我需要使用 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 的连接子句中使用 SUBSTR
吗?
【问题讨论】:
【参考方案1】:这是旧版本 HSQLDB 的限制。
较新的 2.x 版本允许在 OUTER JOIN 条件下使用 SUBSTR 或任何其他函数。
最新版本还支持兼容模式,以改进对 Oracle 数据类型和特性的处理。
【讨论】:
所以更新版本的 hsqldb 将是解决方案...坦克!以上是关于在 HSQL 左外连接子句中使用 SUBSTR的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 linq lambda 扩展方法执行带有 where 子句的左外连接