我在 Hypersonic DB (HSQLDB) 中运行以下查询:
SELECT (CASE foo WHEN 'a' THEN 'bar' WHEN 'b' THEN 'biz' ....
ELSE 'fin' END ) FROM MyTable LIMIT 1
当“WHEN”子句的数量超过大约 1000 条时,我会StackOverflowError
在org.hsqldb.jdbc.Util.sqlException()
.
这是真正奇怪的部分:我尝试CASE
用例如 100 个 WHEN 子句后跟ELSE ( CASE foo WHEN ... ) END
. 但是即使进行了这种重写,我也会得到完全相同的行为!
我在 HSQLDB 手册中没有看到任何对 1000 限制或任何其他内容的引用。帮助!