sqlserver拆分,sql语句拆分
SQLServer根据指定字符串拆分字符到临时表函数
Create function [dbo].[split]
创新互联总部坐落于成都市区,致力网站建设服务有成都网站制作、成都网站建设、外贸营销网站建设、网络营销策划、网页设计、网站维护、公众号搭建、小程序开发、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
(
@SourceSql varchar(max),
@StrSeprate varchar(10)
)
returns @temp table(line varchar(max))
as
begin
declare @i int
set @SourceSql = rtrim(ltrim(@SourceSql))
set @i = charindex(@StrSeprate,@SourceSql)
while @i = 1
begin
if len(left(@SourceSql,@i-1))0
begin
insert @temp values(left(@SourceSql,@i-1))
end
set @SourceSql=substring(@SourceSql,@i+len(@StrSeprate),len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql ''
insert @temp values(@SourceSql)
return
end
调用:Select * From dbo.split('1003,1004,1005',',')
结果如下:
100310041005
----------------------------------------------------------------------------------------------------------------------------------
--@column 表示字段或者常量,@paddingChar 表示 补位字符, @len 补位数量, @returnStr
create function [dbo].[PadLeft](@column varchar(16),@paddingChar char(1),@len int)
returns varchar(16) as
begin
declare @returnStr varchar(16)
select @returnStr = isnull(replicate(@paddingChar,@len - len(isnull(@column ,0))), '') + @column
return @returnStr
end
select dbo.PadLeft(2,0,5)
sqlserver中将一个含有“=”的字段拆分成两个字段显示出来,请数据库高手指点
Declare @S1 varchar(100) SUBSTRIN
Select @S1='aa=bb'
Select Substring(@S1,CHARINDEX('aa',@S1)+1,Len(@S1))
sqlserver拆分长字段。正则表达式
([\s\S]*?)(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2})
正则可以这样写
拆分的话
在代码里面做会方便一些吧
sqlserver 怎么分割字符串
如楼上给的 单独分割一部分 也可用下面的函数 分割出一个集合
-- 1.0 拆分字符串 参数 @strSource要操作的字符串 @strSeparator分隔符
CREATE FUNCTION [dbo].fn_splitStr( @strSource NVARCHAR(4000),@strSeparator NVARCHAR(10) )
RETURNS @tbResult TABLE(id INT IDENTITY(1,1),rs NVARCHAR(1000))
AS
BEGIN
DECLARE @dwIndex INT,@strResult NVARCHAR(1000),@dwSeparatorLen INT=LEN(@strSeparator);
SET @dwIndex = CHARINDEX(@strSeparator,@strSource);-- 取得第一个分隔符的位置
WHILE @dwIndex0
BEGIN
SET @strResult = LEFT(@strSource,@dwIndex-1);
INSERT @tbResult VALUES(@strResult);
--将要操作的字符串去除已切分部分
SET @strSource = SUBSTRING(@strSource,@dwIndex+LEN(@dwIndex),LEN(@strSource));
SET @dwIndex = CHARINDEX(@strSeparator,@strSource); --循环量增加
END
--处理最后一节
IF LEN(@strSource) 0 INSERT @tbResult VALUES(@strSource)
RETURN;
END
GO
MS SQLserver水平,垂直分割问题?
在SQL Server2000 中事务复制的改进主要包括以下几个方面.并行快照处理保证即使在创建初始快照时仍可对出版表进行修改提高错误处理能力可以跳过指定的错误继续进行数据复制.在订购者处对复制数据进行确认包括对垂直分割的确认通过SQL Server Enterprise Manager 也可以使用确认
---
以上,希望对你有所帮助。
名称栏目:sqlserver拆分,sql语句拆分
本文来源:http://scyanting.com/article/hcooos.html