当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
SQL语句中将字符串转成临时表的方法
发布时间:2010/9/6 16:41:01 来源:城市学习网 编辑:ziteng
  方式一:通过charindex和substring。
  create function func_splitstring
  (@str nvarchar(max),@split varchar(10))
  returns @t Table (c1 varchar(100))
  as
  begin
  declare @i int
  declare @s int
  set @i=1
  set @s=1
  while(@i>0)
  begin
  set @i=charindex(@split,@str,@s)
  if(@i>0)
  begin
  insert @t(c1) values(substring(@str,@s,@i-@s))
  end
  else begin
  insert @t(c1) values(substring(@str,@s,len(@str)-@s+1))
  end
  set @s = @i + 1
  end
  return
  end
  执行:select * from dbo.func_splitstring('1,2,3,4,5,6', ',')
  结果:
  方式二:通过XQuery(需要SQL Server 2005以上版本)。
  create function func_splitid
  (@str varchar(max),@split varchar(10))
  RETURNS @t Table (c1 int)
  AS
  BEGIN
  DECLARE @x XML
  SET @x = CONVERT(XML,'<items><item id="' + REPLACE(@str, @split, '"/><item id="') + '"/></items>')
  INSERT INTO @t SELECT x.item.value('@id[1]', 'INT') FROM @x.nodes('//items/item') AS x(item)
  RETURN
  END
  执行:select * from dbo.func_splitid('1,2,3,4,5,6', ',')
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved