sql server split
时间: 2023-09-05 10:11:49 浏览: 111
在 SQL Server 中,如果你想要拆分一个字符串,你可以使用一些内置的函数或者自定义的方法来实现。以下是一些常用的方法:
1. 使用 STRING_SPLIT 函数(仅适用于 SQL Server 2016 及以上版本):
```sql
SELECT value
FROM STRING_SPLIT('Hello,World,OpenAI', ',')
```
2. 使用 XML 方法:
```sql
DECLARE @str VARCHAR(MAX) = 'Hello,World,OpenAI'
SELECT Split.a.value('.', 'VARCHAR(100)') AS value
FROM (
SELECT CAST('<X>' + REPLACE(@str, ',', '</X><X>') + '</X>' AS XML) AS String
) AS A
CROSS APPLY String.nodes('/X') AS Split(a)
```
3. 使用自定义的分割函数:
```sql
CREATE FUNCTION dbo.SplitString
(
@str VARCHAR(MAX),
@delimiter CHAR(1)
)
RETURNS @output TABLE (value VARCHAR(MAX))
BEGIN
DECLARE @start INT, @end INT
SELECT @start = 1, @end = CHARINDEX(@delimiter, @str)
WHILE @start < LEN(@str) + 1
BEGIN
IF @end = 0
SET @end = LEN(@str) + 1
INSERT INTO @output (value)
VALUES (SUBSTRING(@str, @start, @end - @start))
SET @start = @end + 1
SET @end = CHARINDEX(@delimiter, @str, @start)
END
RETURN
END
-- 使用自定义函数进行拆分
SELECT value
FROM dbo.SplitString('Hello,World,OpenAI', ',')
```
这些方法可以根据你的需求选择适合的方式来拆分字符串。
阅读全文