Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 连接记录集,其中连接的值介于另一行的基值和更高的基值之间_Postgresql - Fatal编程技术网

Postgresql 连接记录集,其中连接的值介于另一行的基值和更高的基值之间

Postgresql 连接记录集,其中连接的值介于另一行的基值和更高的基值之间,postgresql,Postgresql,我想联接一个记录集,其中联接表列中的特定值位于基表行上的值之间。给定的表b左键连接到a: WITH a (v) AS ( VALUES (1),(3),(5),(7),(9) ), b (v) AS ( VALUES (1),(2),(3),(4),(5) ) SELECT a.v, b.v FROM a LEFT JOIN b ON b.v >= a.v /* AND ??? */ 我希望实现的目标输出c是: a join b = c v v

我想联接一个记录集,其中联接表列中的特定值位于基表行上的值之间。给定的表b左键连接到a:

WITH a (v) AS (
 VALUES (1),(3),(5),(7),(9)
), b (v) AS (
 VALUES (1),(2),(3),(4),(5)
) SELECT a.v, b.v FROM a
LEFT JOIN b ON b.v >= a.v /* AND ??? */
我希望实现的目标输出c是:

a  join  b   =   c
v        v       v
-        -      ---
1        1      1,1
3        2      1,2
5        3      3,3
7        4      3,4
9        5      5,5
                7,
                9
我怀疑子查询或窗口函数可能会起作用,但解决方案对我来说并不明显,希望有一些好的建议:

无关,但是:从值1,3,5,7,9中选择column1 a可以在CTE中简化为值1,3,5,7,9
WITH 
  a (v) AS (SELECT column1 FROM ( VALUES (1),(3),(5),(7),(9) ) a)
, b (v) AS (SELECT column1 FROM ( VALUES (1),(2),(3),(4),(5) ) b) 
, a2    AS (select a.v, lead(a.v) over () as v_l from a)
select a2.v,b.v from a2 left join  b on (b.v < a2.v_l and b.v >= a2.v)