-2
@ss null 또는 "-"수를 반환 할 때까지 루프를 실행해야합니다. 그래서 코드 아래while 루프하는 방법
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 [email protected]+1
END
기능 시도 : GetStringPart
ALTER FUNCTION [dbo].[GetStringPart] (@sep varchar(1), @s varchar(512),@pos int)
RETURNS VARCHAR(200)
AS
BEGIN
DECLARE @output VARCHAR(200)
;WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT
@output=SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END)
FROM Pieces
WHERE [email protected]
RETURN @Output
END
고마워요, 수행하는 방법
을 ...
왜 당신이 당신의 기능 대신이 스파게티 코드에서 테이블을 반환하지 않는 :아, 그리고 루프가 처음 가야,
@ss
는 더미 초기화를 제공? –