sql 拆分字符串 Split
2016-08-24 14:33
351 查看
sql:
CREATE FUNCTION [dbo].[Split] (
@sText NVARCHAR(Max),
@sDelim CHAR(1)
)
RETURNS @retArray TABLE (
value VARCHAR(100)
)
AS
BEGIN
DECLARE
@posStart
BIGINT,
@posNext
BIGINT,
@valLen
BIGINT,
@sValue
NVARCHAR(100);
IF @sDelim IS NULL
BEGIN
IF LEN(@sText)>100 SET @sText = SUBSTRING(@sText, 1, 100)
INSERT @retArray (value)
VALUES (@sText);
END
ELSE
BEGIN
SET @posStart = 1;
WHILE @posStart <= LEN(@sText)
BEGIN
SET @posNext = CHARINDEX(@sDelim, @sText, @posStart);
IF @posNext <= 0
SET @valLen = LEN(@sText) - @posStart + 1;
ELSE
SET @valLen = @posNext - @posStart;
SET @sValue = SUBSTRING(@sText, @posStart, @valLen);
SET @posStart = @posStart + @valLen + 1;
IF LEN(@sValue) > 0
BEGIN
IF LEN(@sValue)>100 SET @sValue = SUBSTRING(@sValue, 1, 100)
INSERT @retArray (value)
VALUES (@sValue);
END
END
END
RETURN
END
测试:
DECLARE @DateString varchar(1000)
SET @DateString = '星期四,星期五'
select * from dbo.Split(@DateString,',')
结果:
CREATE FUNCTION [dbo].[Split] (
@sText NVARCHAR(Max),
@sDelim CHAR(1)
)
RETURNS @retArray TABLE (
value VARCHAR(100)
)
AS
BEGIN
DECLARE
@posStart
BIGINT,
@posNext
BIGINT,
@valLen
BIGINT,
@sValue
NVARCHAR(100);
IF @sDelim IS NULL
BEGIN
IF LEN(@sText)>100 SET @sText = SUBSTRING(@sText, 1, 100)
INSERT @retArray (value)
VALUES (@sText);
END
ELSE
BEGIN
SET @posStart = 1;
WHILE @posStart <= LEN(@sText)
BEGIN
SET @posNext = CHARINDEX(@sDelim, @sText, @posStart);
IF @posNext <= 0
SET @valLen = LEN(@sText) - @posStart + 1;
ELSE
SET @valLen = @posNext - @posStart;
SET @sValue = SUBSTRING(@sText, @posStart, @valLen);
SET @posStart = @posStart + @valLen + 1;
IF LEN(@sValue) > 0
BEGIN
IF LEN(@sValue)>100 SET @sValue = SUBSTRING(@sValue, 1, 100)
INSERT @retArray (value)
VALUES (@sValue);
END
END
END
RETURN
END
测试:
DECLARE @DateString varchar(1000)
SET @DateString = '星期四,星期五'
select * from dbo.Split(@DateString,',')
结果:
相关文章推荐
- SQL字符串处理--按分割符拆分字符串T-SQL to Split a varchar into Words
- SQL_字符串拆分(split)方法总结
- 教你如何实现SQL下的字符串拆分
- 将一个以逗号分隔的字符串拆分单个记录,并生成插入sql语句
- sqlserver字符串拆分(split)方法汇总
- oracle中使用split拆分字符串,并且判断字符串是否在数据库中存在
- SQL 拆分字符串的经典方法
- 在Sql中编写函数功能分隔字符串(同VB的split)
- sqlserver字符串拆分(split)方法汇总(转载并仔细学习)
- sql拆分字符串
- SQL 拆分字符串
- T-SQL字符串拆分的多种方式
- SQL拆分字符串
- sql中拆分字符串的N中方法和手段
- 一个拆分有规律字符串的SQL
- SQL分割字符串 类似 C# Split
- SQL拆分字符串
- SQL Server : T-SQL中拆分字符串的一个自定义函数
- Android中字符串的拆分-split
- 使用System.StringSplitOptions去除待拆分字符串中的空项