在SQL中对齐数据

时间:2013-04-29 18:27:50

标签: sybase

我正在使用Sybase SQL。

我有两张桌子。

表A:

Column1_A:
100
501
504
810
810
950
955
955

表B:

Column1_B:
100
250
503
810
807
949
950
955
955

我想实现以下目标:

Column1_A    Column1_B
100          NULL   
501          250
504          503
810          503
810          503
950          949
955          950
955          950

因此,基本上我想将Table1中的Column1_B与表A中的Column1_A对齐,以使Column1_B的最大值小于每行的Column1_A。如果表B中没有这样的元素,它应该给出NULL

Column1_A或Column1_B中的值仅供参考。实际值类似于1000,1500,2504,并且它们不一定是Column1_B中的值是Column1_A - 1.

编辑:

我修改了数据,以便可以推广逻辑。我正在使用Sybase SQL。

1 个答案:

答案 0 :(得分:2)

很抱歉,但我不清楚你想要获得什么。但您提交的最终结果可以通过以下方式获得:

SELECT Column1_A, Column1_B FROM A 
LEFT JOIN B ON Column1_A = Column1_B -1

编辑。 您可以尝试相关的子查询:

SELECT Column1_A a,(SELECT MAX(Column1_B)FROM B其中Column1_B< a)FROM A