SQL server varchar.toArray()或string.toArray()方法

Fra*_*Thu 6 sql t-sql sql-server

我想将我的字符串数据转换为sql server中的数组.我尝试过如下.

SELECT '223456789' AS SerialOriginalCode
-- SerialOriginalCode 223456789
DECLARE @tbl_SerialOriginalVerion TABLE(ID INT, SerialOriginalCode INT);
INSERT INTO @tbl_SerialOriginalVerion VALUES
(1, 2),
(2, 2),
(3, 3),
(4, 4),
(5, 5),
(6, 6),
(7, 7),
(8, 8),
(9, 9);
SELECT * FROM @tbl_SerialOriginalVerion
Run Code Online (Sandbox Code Playgroud)

但它是手动方式,它不是程序化转换的方式,因为它需要我键入每一行的每个插入值.

有人可以建议我更多的方式吗?

Mun*_*ein 3

DECLARE @InputText AS VARCHAR(MAX) = '223456789'
DECLARE @Pos Int = 1
DECLARE @End Int
DECLARE @TextLength Int = DATALENGTH(@InputText)

DECLARE @Array TABLE 
(
  TokenID Int PRIMARY KEY IDENTITY(1,1),
  Match Varchar(MAX)
)

-- Exit function if no text is passed in.
IF @TextLength <> 0 
  BEGIN
    WHILE @Pos <= @TextLength BEGIN
      INSERT @Array (Match) VALUES (SUBSTRING(@InputText,@Pos,1))
      SET @Pos = @Pos + 1
    END
  END

SELECT * FROM @Array
Run Code Online (Sandbox Code Playgroud)