sqlserver 字符串转数组
时间: 2023-11-09 17:02:19 浏览: 52
在 SQL Server 中,可以使用 XML 和字符串函数来将字符串转换为数组。具体步骤如下:
1. 将字符串转换为 XML 格式,使用 ',' 作为分隔符:
```
DECLARE @str VARCHAR(MAX) = 'apple,banana,orange'
DECLARE @xml XML = '<root><s>' + REPLACE(@str, ',', '</s><s>') + '</s></root>'
```
2. 使用 XML 函数将 XML 转换为表格:
```
SELECT t.c.value('.', 'VARCHAR(MAX)') AS fruit
FROM @xml.nodes('/root/s') AS t(c)
```
这样就可以将字符串 'apple,banana,orange' 转换为包含三个元素的数组。
相关问题
sqlserver字符串转数组
在SQL Server中,可以使用内置函数STRING_SPLIT来将字符串转换为数组。这个函数会将字符串按照指定的分隔符拆分成多个子字符串,并返回一个结果集。
下面是使用STRING_SPLIT函数将字符串转换为数组的示例:
```sql
DECLARE @str VARCHAR(100) = 'apple,banana,orange'
SELECT value FROM STRING_SPLIT(@str, ',')
```
在上面的示例中,我们首先声明了一个变量 @str,并将字符串 'apple,banana,orange' 赋值给它。然后,使用STRING_SPLIT函数将这个字符串按照逗号分隔符拆分成多个子字符串。最后,我们通过SELECT语句从结果集中选择 value 列,这样就可以得到一个包含拆分后的子字符串的数组。
sqlserver2008字符串转数组
在 SQL Server 2008 中,你可以使用一些函数将字符串转换为数组。下面是两种常用的方法:
方法一:使用 XML 进行转换
你可以使用 XML 的功能将字符串转换为数组。可以按照以下步骤进行操作:
1. 创建一个 XML 变量,并将字符串作为 XML 格式存储在其中。
2. 使用 XML 函数将 XML 变量中的字符串拆分为多个行。
3. 使用 SELECT 语句从 XML 表中选择所需的数据。
以下是一个示例代码:
```
DECLARE @str NVARCHAR(MAX)
SET @str = 'apple,banana,orange'
DECLARE @xml XML
SET @xml = '<root><item>' + REPLACE(@str, ',', '</item><item>') + '</item></root>'
SELECT T.c.value('.', 'nvarchar(MAX)') AS Result
FROM @xml.nodes('/root/item') T(c)
```
方法二:使用字符串函数进行转换
如果你不想使用 XML,还可以使用字符串函数进行转换。可以按照以下步骤进行操作:
1. 使用字符串函数将字符串中的逗号替换为空格。
2. 使用表值函数 `STRING_SPLIT` 将字符串拆分为多个行。
3. 使用 SELECT 语句从拆分后的表中选择所需的数据。
以下是一个示例代码:
```
DECLARE @str NVARCHAR(MAX)
SET @str = 'apple,banana,orange'
SELECT value AS Result
FROM STRING_SPLIT(REPLACE(@str, ',', ' '), ' ')
```
请注意,`STRING_SPLIT` 函数仅适用于 SQL Server 2016 及更高版本。如果你使用的是 SQL Server 2008,请使用方法一。