需要获取单个列

本文关键字:单个列 获取 | 更新日期: 2023-09-27 18:00:05

我有一个表

col1  col2  col3
----------------
6      ab   
2      cd    3
3      eg    6
7      hs    3
5      gh    4
6      kj    7

当我用kj(col2)搜索时,col3-7等于col1-7,所以"hs"需要添加到树(hs-kj),现在col3-3用col1-3"eg"添加到树,然后col3-6用col1-6,所以"ab"添加到棵树,所以输出应该是(ab-eg-hs-kj

请有人回答这个问题吗?

需要获取单个列

假设col1是唯一的,则此查询将执行此操作;

WITH cte AS (
  SELECT m.col2, m.col3, 1 col4 FROM mytable m WHERE col2='kj'
  UNION ALL
  SELECT m.col2, m.col3, col4+1 col4 FROM mytable m JOIN cte ON m.col1 = cte.col3
)
SELECT col2 FROM cte ORDER BY col4 

一个SQLfiddle示例,其中col1是唯一的。

目前,abkj对于col1具有相同的值,这使得ab相对于kj的选择不清楚。如果这不是一个错误,就需要澄清选择标准。