尽管
SELECT id, also FROM names WHERE isnull(also,'')<>''1
返回2000多个结果,以下光标没有循环,我得到:
@count = 0
DECLARE @id BIGINT, @name NVARCHAR(1000)
DECLARE @aslo TABLE (id INT, name NVARCHAR(100))
DECLARE name_cur CURSOR FOR
(SELECT id, also
FROM names
WHERE ISNULL(also, '') <> '')
DECLARE @count INT = 0
OPEN name_cur
WHILE @@FETCH_STATUS = 0
BEGIN
SET @count = @count + 1
INSERT INTO @aslo (id, name)
SELECT @id, *
FROM string_split(@name, ',')
FETCH NEXT FROM name_cur INTO @id, @name;
END
CLOSE name_cur;
DEALLOCATE name_cur;
SELECT @count
SELECT COUNT(*) FROM @aslo a