Sql server 2005 CTE 拆分字符串
2010-12-31 15:47
561 查看
alter FUNCTION [dbo].[UF_SpliteIntToTable]
(
@String VARCHAR(8000)
)
RETURNS @Table TABLE (Id INT)
AS
BEGIN
DECLARE @SpliteChar AS CHAR(1) = ',';
WITH TempTable AS
(
SELECT CAST(SUBSTRING(@String,1,CHARINDEX(@SpliteChar,@String,1) - 1) AS INT) AS item,
SUBSTRING(@String,CHARINDEX(@SpliteChar,@String,1) + 1, LEN(@String)) + @SpliteChar AS list
UNION ALL
SELECT CAST(SUBSTRING(list,1,CHARINDEX(@SpliteChar,list,1) - 1) AS INT) AS item,
SUBSTRING(list,CHARINDEX(@SpliteChar,list,1) + 1, LEN(list)) AS list
FROM TempTable
WHERE LEN(TempTable.list) > 0
)
INSERT INTO @Table SELECT item FROM TempTable WHERE item > 0
RETURN
END
(
@String VARCHAR(8000)
)
RETURNS @Table TABLE (Id INT)
AS
BEGIN
DECLARE @SpliteChar AS CHAR(1) = ',';
WITH TempTable AS
(
SELECT CAST(SUBSTRING(@String,1,CHARINDEX(@SpliteChar,@String,1) - 1) AS INT) AS item,
SUBSTRING(@String,CHARINDEX(@SpliteChar,@String,1) + 1, LEN(@String)) + @SpliteChar AS list
UNION ALL
SELECT CAST(SUBSTRING(list,1,CHARINDEX(@SpliteChar,list,1) - 1) AS INT) AS item,
SUBSTRING(list,CHARINDEX(@SpliteChar,list,1) + 1, LEN(list)) AS list
FROM TempTable
WHERE LEN(TempTable.list) > 0
)
INSERT INTO @Table SELECT item FROM TempTable WHERE item > 0
RETURN
END
相关文章推荐
- SQL SERVER 2005中利用XML对字符串拆分的方法
- SQL Server 2005+ 使用 CTE 分割字符串
- SQL Server 2005+ 使用 CTE 分割字符串
- SQL Server 2005中拆分逗号分隔的字符串或把逗号分隔的字符串拆成数据表的函数
- SQL SERVER 2005中利用XML对字符串拆分的方法
- sql server 2000和sqlserver 2005 连接字符串的区别
- [转]SQL Server 2005链接字符串
- SQL Server实现将特定字符串拆分并进行插入操作的方法
- JDBC 连接字符串 -- SQL Server 2000 和 SQL Server 2005 的区别
- SQL Server 2005 连接字符串代码
- [数据库连接字符串] SQL Server 2005 连接字符串
- SQL Server 2005中的CTE
- Sql Server 2005 截取字符串
- SQL Server 2005 连接字符串代码
- SQL Server 2005 Express 链接字符串
- SQL2000/2005字符串拆分为列表通用函数
- [SQL Server 2005/2008]递归更新update(使用CTE公用表达式)
- SQL SERVER 2005字符串转换为数字
- .NET 中SQL Server 2000、SQL Server 2005 连接字符串
- 如何SQL Server 2005实现使用CLR函数实现字符串排序