我正在使用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。
答案 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