且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SQL Server 中带有 while 循环的用户定义函数

更新时间:2023-02-07 09:40:46

看来您可能想要一个表值函数.

It seems you may want a Table-Valued Function.

此外,应尽可能避免循环

Also, loops should be avoided when possible

示例

CREATE FUNCTION [dbo].[tvf-Star] (@Input int)
Returns Table 
As
Return (  

Select Top (@Input) 
       Stars = replicate(' ',@Input-N)+replicate('*',N)
 From ( Select Top (@Input) N=Row_Number() Over (Order By (Select NULL)) From master..spt_values n1 ) A
 Order By N Desc
)

如果您要:

Select * from [dbo].[tvf-Star](5)

结果

Stars
*****
 ****
  ***
   **
    *