sqlserver 字符串转成表
时间: 2024-09-26 11:13:54 浏览: 68
SQL Server 中将字符串转换为表格,通常是指将单行数据拆分成多行,这可以使用 STRING_SPLIT
函数配合 UNION ALL
或 PIVOT
来实现。STRING_SPLIT
函数可以将一个包含逗号分隔值(CSV)的字符串分割成一行一行的数据。
例如,如果你有一个名为 example_string
的列,其内容类似于 "A,B,C,D", 你可以这样做:
DECLARE @example_string VARCHAR(MAX) = 'A,B,C,D'
;
WITH SplitStrings AS (
SELECT value AS Item
FROM STRING_SPLIT(@example_string, ',')
)
SELECT *
FROM SplitStrings
这将返回一个表,每个元素都在单独的一行上:
Item |
---|
A |
B |
C |
D |
如果你想将这个数据变成一个更结构化的表格,比如每列对应原始字符串的一个部分,可以使用 PIVOT
或者手动编写 UNION ALL
语句。但是请注意,PIVOT
只适用于静态的列列表,如果字段数不确定,可能会有局限性。
-- 使用PIVOT示例
SELECT *
FROM (
SELECT Item
FROM SplitStrings
) SourceTable
PIVOT (
MAX(Item)
FOR Item IN ([A], [B], [C], [D])
) AS PivotTable
相关推荐















