关于sql的查询

关于sql的查询,sql,postgresql,Sql,Postgresql,所以我有一个关于SQL的表。我想得到一个特定数字的所有后代。例如,如果我选择数字2,结果应该是: +--------------+---------------+ | First number | Second number | +--------------+---------------+ | 1 | 2 | | 2 | 3 | | 3 | 4 | |

所以我有一个关于SQL的表。我想得到一个特定数字的所有后代。例如,如果我选择数字2,结果应该是:

+--------------+---------------+
| First number | Second number |
+--------------+---------------+
|      1       |       2       |
|      2       |       3       |
|      3       |       4       |
|      4       |       5       |
+--------------+---------------+
数字不需要按正确的顺序排列:

+--------------+---------------+
|      2       |       3       |
|      3       |       4       |
|      4       |       5       |
+--------------+---------------+
我应该继续获得先前的结果


我不知道怎么做,希望你能帮我。

这可以通过一个简单的select语句来实现


从“first number”>=2的表中选择*可以使用
递归CTE

+--------------+------------------+
| First number | Following number |
+--------------+------------------+
|      2       |       3          |
|      4       |       5          |
|      3       |       4          |
|      1       |       2          |
+--------------+------------------+

您使用什么DB引擎?您的问题看起来很简单。如果你来的话,你很容易就能达到你的目标。我没有想到这一点,但是数字的顺序可能不正确,我只是编辑了这个问题。很抱歉,不管数字是否按顺序存储,此查询仍将有效!。无论如何,正如@Pham X.Bach所建议的,你的问题非常基本,我建议你阅读一本关于SQL的指南(只有谷歌,网上有很多)
WITH RECURSIVE t
     AS (SELECT *
         FROM   yourtable
         WHERE  "First number" = 2
         UNION ALL
         SELECT a.*
         FROM   yourtable a
                JOIN t b
                  ON b."Second number" = a."First number")
SELECT *
FROM   t