Предложение H2DB WITH

Я пишу модульный тест для метода со следующим 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 

Этот запрос возвращает пустой набор данных, но я ожидаю 1 строку.

Данные верны, так как аналогичный простой запрос без предложения with работает нормально.

Я изучил проблему и нашел
подзапрос с WITH- CLAUSE в H2DB, но это решение не помогло.

Итак, кто-нибудь знает, как H2 поддерживает предложение with?

Спасибо заранее за ваше время.


person Masha    schedule 11.02.2014    source источник
comment
h2 только поддерживает рекурсивные CTE. Он не поддерживает обычные CTE.   -  person a_horse_with_no_name    schedule 10.10.2014


Ответы (2)


Теперь поддерживается http://www.h2database.com/html/grammar.html. Также для нерекурсивных запросов.

person VenVig    schedule 12.10.2018

В соответствии со следующим: грамматика базы данных h2

Похоже, что предложение WITH не поддерживается в базе данных H2, за исключением экспериментальной поддержки рекурсивных запросов: h2 recursive запросы

person manuna    schedule 10.10.2014
comment
Он поддерживается, но только для рекурсивных запросов: h2database.com/html/advanced.html# рекурсивные_запросы - person a_horse_with_no_name; 10.10.2014