H2DB WITH clause

烂漫一生 提交于 2021-02-10 13:58:07

问题


I'm writing a unit test for a method with the following sql

WITH    temptab(
i__id ,  i__name, i__effective, i__expires, i__lefttag, i__righttag,
hier_id, hier_dim_id, parent_item_id, parent_hier_id, parent_dim_id, 
ancestor, h__id, h__name, h__level, h__effective, h__expires, rec_lvl)  
AS ( 
  SELECT 
  item.id          as i__id,        
  item.name        as i__name,        
  item.effectivets   as i__effective,        
  item.expirests     as i__expires,       
  item.lefttag     as i__lefttag,     
  item.righttag    as i__righttag,       
  hier_id,        hier_dim_id,        
  parent_item_id,      
  parent_hier_id,     
  parent_dim_id,        1          as ancestor,    
  hier.id    as h__id,        hier.name  as h__name,   
  hier.level as h__level,        hier.effectivets as h__effective,    
  hier.expirests as h__expires,        1 as rec_lvl FROM   metro.item item,      
   metro.hierarchy hier  WHERE  item.id    = 'DI'     AND hier_id    = '69'     AND hier_dim_id= '36'  AND hier.id    =item.hier_id
 )
SELECT  
  i__id,    i__name,    i__effective,    i__expires,    i__lefttag,  
  i__righttag,    hier_id,    hier_dim_id,    parent_item_id,  
  parent_hier_id,    parent_dim_id,    ancestor,   
  h__id,    h__name,    h__level,    h__effective,    h__expires 
FROM temptab 

This query returns empty dataset, but I expect 1 row.

The data are correct, as similar simple query without with clause works fine.

I investigated the problem and I've found the
Sub Query with WITH-CLAUSE in H2DB but that solution did not help.

So, does anyone know how H2 supports with clause?

Thanks in advance for your time.


回答1:


Its supported now http://www.h2database.com/html/grammar.html For non-recursive queries also.




回答2:


According to the following :h2 database grammar

Looks like WITH clause is not supported in H2 database, except of experimental support for recursive queries: h2 recursive queries



来源:https://stackoverflow.com/questions/21696964/h2db-with-clause

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!