sqlserver中将逗号字符串分隔的值怎么做到第一行取第一个逗号的,第二行取第二个
时间: 2023-11-29 18:02:25
浏览: 176
在SQL Server中,可以使用一些内置函数和技巧来将逗号分隔的字符串拆分成多行。其中一个常用的方法是使用STRING_SPLIT函数和ROW_NUMBER函数来实现这个功能。
首先,我们可以使用STRING_SPLIT函数将逗号分隔的字符串拆分成多行,然后使用ROW_NUMBER函数给每行结果添加一个序号。接下来,我们可以根据序号来筛选出需要的行,从而实现每行取不同的逗号值的目的。
例如,假设我们有一个逗号分隔的字符串"apple,orange,banana",我们可以使用以下的SQL语句来实现将逗号分隔的值分割成多行并按照顺序取出每个值:
```sql
DECLARE @str NVARCHAR(MAX) = 'apple,orange,banana'
SELECT value
FROM (SELECT value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn
FROM STRING_SPLIT(@str, ',')) AS s
WHERE rn = 1
UNION ALL
SELECT value
FROM (SELECT value, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rn
FROM STRING_SPLIT(@str, ',')) AS s
WHERE rn = 2
-- 继续添加需要的行数
上述SQL语句首先使用STRING_SPLIT函数将逗号分隔的字符串拆分成多行,然后使用ROW_NUMBER函数为每行结果添