1

我有一组(当前)7个表,所有表都具有完全相同的结构,并且名称上带有运行编号,例如:tbl_1_items,tbl_2_items,tbl_3_items ...

每个表都是这样构建的:key、parentKey、url、其他列... table1 当然不包含 parentKey。

我需要一个递归查询/SP,如果它甚至可能的话,从某个级别运行并按下键,直到我找到一个不为空的 url,我将只运行第一个结果。

示例:我发送 2 级密钥 1 所以它会这样做:

SELECT url FROM 'tbl_' + @level + 'items' WHERE url IS NOT NULL

现在如果没有结果它会做

SELECT url FROM 'tbl_' + (@level + 1) + 'items' WHERE url IS NOT NULL

等等。直到最后一级。

可以吗?

如果我不够清楚,请告诉我

4

1 回答 1

0
select top 1 *
from
(
    select 1 as level, url from tbl_1_items where url IS NOT NULL
    union
    select 2 as level, url from tbl_2_items where url IS NOT NULL
    union
    select 3 as level, url from tbl_3_items where url IS NOT NULL
    union
    select 4 as level, url from tbl_4_items where url IS NOT NULL
    union ...
) v
order by level
于 2013-10-21T07:55:55.693 回答