首页 > 解决方案 > 函数根据它的长度将单元格中的任何字符串值返回到新行?

问题描述

现在我有这张桌子:

Names
----------
Bill
James
----------

我的目标是根据它们的长度将这些名称重复插入到新行中。

例如

Names
----------
Bill
Bill
Bill
Bill
James
James
James
James
James

PS我将找出是否有一种方法可以仅使用过滤器where,例如having...等来处理它。

提前致谢。

标签: sqlsql-server-2012

解决方案


您可以使用递归 CTE:

with cte as (
      select name, len(name) as n
      from t
      union all
      select name, n - 1
      from cte
      where n > 1
     )
select cte.name
from cte;

是一个 db<>fiddle。


推荐阅读