当前位置:文档之家› SQL 分割字符串函数 SQL SPLIT

SQL 分割字符串函数 SQL SPLIT

SQL 分割字符串函数 SQL SPLIT
2009-06-10 00:15
我们在操作数据库时,经常要用到分割字符串以达到某种目的,下面是一个SQL分割字符串的函数:
--CODE:
-- =============================================
-- Author: </mysmallhouse/>
-- Create date: <2009-06-09>
-- Description: <SQL分隔字符串函数>
-- =============================================
CREATE FUNCTION [dbo].[fn_split]
(
--输入字符串
@InputString NVARCHAR(MAX),
--分隔符号
@Seprator NVARCHAR(10)
)
RETURNS @tempTable TABLE ([value] NVARCHAR(200))
AS
BEGIN
DECLARE @index int
DECLARE @value NVARCHAR(200)
--去除输入字符串前后的空格
SET @InputString = RTRIM(LTRIM(@InputString))
--分隔符号@Seprator在输入字符串@InputString中的开始位置
SET @index=CHARINDEX(@Seprator, @InputString)
WHILE @index>0
BEGIN
--返回输入字符串(@InputString)左边开始指定个数(@index-1)的字符
SET @value=LEFT(@InputString,@index-1)
--插入数据
INSERT @tempTable VALUES(@value)
--重新设置输入字符串截取输入字符串从输入字符串@index+1处开始且长度为LEN(@InputString)-@index SET @InputString = SUBSTRING(@InputString, @index+1, LEN(@InputString)-@index)
--分隔符号@Seprator在输入字符串@InputString中的开始位置
SET @index=CHARINDEX(@Seprator, @InputString)
END
--如果输入字符串不为空
IF(@InputString<>'\')
BEGIN
INSERT @tempTable VALUES(@InputString)
END
RETURN
END
--使用
SELECT * FROM dbo.fn_split('A,B,CD,EFG,H',',')
--结果。

相关主题