首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

使用SQL语法对字段做解析的有关问题

2012-04-11 
使用SQL语法对字段做解析的问题我有张表里字段是aaa,bbb,ccc,ddd,这样使用逗号隔开的字符,通过SQL语法怎样

使用SQL语法对字段做解析的问题
我有张表里字段是     aaa,bbb,ccc,ddd,       这样使用逗号隔开的字符,通过SQL语法怎样做解析把aaa   bbb每个值取出来?

谢谢!

[解决办法]
declare @str varchar(4000)
set @str = 'aaa,bbb,ccc,ddd '

declare @sql varchar(8000)
set @sql = 'select ' + replace(@str, ', ', ' union all select ')
exec(@sql)
[解决办法]
CREATE FUNCTION dbo.f_splitSTR(
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
--创建分拆处理的辅助表(用户定义函数中只能操作表变量)
DECLARE @t TABLE(ID int IDENTITY,b bit)
INSERT @t(b) SELECT TOP 8000 0 FROM syscolumns a,syscolumns b

INSERT @re SELECT SUBSTRING(@s,ID,CHARINDEX(@split,@s+@split,ID)-ID)
FROM @t
WHERE ID <=LEN(@s+ 'a ')
AND CHARINDEX(@split,@split+@s,ID)=ID
RETURN
END
GO
select * from dbo.f_splitSTR( 'aaa,bbb,ccc,ddd ', ', ')
go
drop function dbo.f_splitSTR
/*
col
----------------------------------------------------------------
aaa
bbb
ccc
ddd

(4 row(s) affected)
*/

热点排行