需要获得单列

时间:2014-04-25 17:36:53

标签: c# sql-server

我有一张桌子

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"例如"添加到树,然后col3-6与col1-6,所以" ab"添加到树,所以输出应该是(ab-eg-hs-kj)

请有人回答此问题吗?

1 个答案:

答案 0 :(得分:1)

假设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 

An SQLfiddle sample where col1 is unique

目前,abkj具有相同的col1值,这使ab超过kj的选择不明确。如果这不是一个错误,则需要澄清选择标准。