Sql server 如何在sql中执行while循环

Sql server 如何在sql中执行while循环,sql-server,function,tsql,Sql Server,Function,Tsql,我需要执行循环,直到@ss返回null或“-”数。所以在代码下面尝试 DECLARE @i int,@ss varchar(20) SET @i=1; --WHILE (@ss =null) WHILE(@i<=3)// i need to assign i value dynamically BEGIN SET @ss =(SELECT dbo.GetStringPart('-','hello-world',@i)) PRINT @ss SET @i =@i+1 END 如何操作。谢

我需要执行循环,直到@ss返回null或“-”数。所以在代码下面尝试

DECLARE @i int,@ss varchar(20)
SET @i=1;
--WHILE (@ss =null)
WHILE(@i<=3)// i need to assign i value dynamically 
BEGIN
SET @ss =(SELECT dbo.GetStringPart('-','hello-world',@i))
PRINT @ss
SET @i =@i+1
END

如何操作。谢谢…

使用
IS
IS NOT
而不是
=
与NULL进行比较:

WHILE @ss IS NOT NULL
哦,为了让循环第一次运行,给
@ss
一个虚拟初始值设定项:

DECLARE @i int, @ss varchar(20) = ''

为什么不从函数中返回一个表而不是这个意大利面代码呢?
DECLARE @i int, @ss varchar(20) = ''