分割sqlserver,分割构成

sqlserver 怎么分割字符串

如楼上给的 单独分割一部分    也可用下面的函数 分割出一个集合

网页设计是网站建设的前奏,好的网页设计更深度的剖析产品和设计风格定位,结合最新的网页设计流行趋势,与WVI应用标准,设计出具企业表现力,大器而深稳的网站界面设。成都创新互联公司自2013年起,是成都网站建设公司:提供企业网站设计,成都品牌网站建设,营销型企业网站建设方案,成都响应式网站建设,微信小程序,专业建站公司做网站。

-- 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

sqlserver怎么把一个表中按分号隔开的字符串分成多行放在一个临时表中呢?

分割“版区负责人Id”,使其结果为

版区Id    版区负责人Id

6            123

6            456

6            789

(这里,我想来想去,只有使用零时表+游标来实现,个人没有想到更好的方法)

CREATE FUNCTION [dbo].[fun_Split]

(

@str VARCHAR(MAX) ,

@split VARCHAR(10)

)

RETURNS TABLE

AS 

RETURN

(SELECT B.id FROM      ( SELECT    [value] = CONVERT(XML , 'v' + REPLACE(@str , @split , '/vv')

+ '/v')

) A

OUTER APPLY ( SELECT  id = N.v.value('.' , 'varchar(100)')

FROM    A.[value].nodes('/v') N ( v )

) B

)

GO

--2005以及以上的版本支持这种分割写法。

用xml path,把数据搞成你所要的结果

MS SQLserver水平,垂直分割问题?

在SQL Server2000 中事务复制的改进主要包括以下几个方面.并行快照处理保证即使在创建初始快照时仍可对出版表进行修改提高错误处理能力可以跳过指定的错误继续进行数据复制.在订购者处对复制数据进行确认包括对垂直分割的确认通过SQL Server Enterprise Manager 也可以使用确认

---

以上,希望对你有所帮助。

sqlserver有没有split函数

SQL Server Split函数

--Author:zc_0101

--说明:

--支持分割符多字节

--使用方法

--Select * FROM DBO.F_SQLSERVER_SPLIT('1203401230105045','0')

--select * from DBO.F_SQLSERVER_SPLIT('abc1234a12348991234','1234')

--Select * from DBO.F_SQLSERVER_SPLIT('ABC',',')

1 CREATE FUNCTION F_SQLSERVER_SPLIT(@Long_str NVARCHAR(MAX),@split_str NVARCHAR(100))

2 RETURNS @tmp TABLE(

3 ID inT IDENTITY PRIMARY KEY,

4 short_str NVARCHAR(MAX)

5 )

6 AS

7 BEGIN

8 DECLARE @short_str NVARCHAR(MAX),@split_str_length int,@split_str_Position_Begin int

9 SET @split_str_length = LEN(@split_str)

10 SET @Long_str=REPLACE(REPLACE(@Long_str,CHAR(10),''),CHAR(13),'')

11 IF CHARINDEX(@split_str,@Long_str)=1

12 SET @Long_str=STUFF(@Long_str,1,@split_str_length,'')

13 IF CHARINDEX(@split_str,@Long_str)=0

14 INSERT INTO @tmp SELECT @Long_str

15 ELSE

16 BEGIN

17 WHILE 10

18 BEGIN

19 SET @split_str_Position_Begin = CHARINDEX(@split_str,@Long_str)

20 SET @short_str=LEFT(@Long_str,@split_str_Position_Begin-1)

21 IF @short_str'' INSERT INTO @tmp SELECT @short_str

22 SET @Long_str=STUFF(@Long_str,1,@split_str_Position_Begin+@split_str_length-1,'')

23 SET @split_str_Position_Begin = CHARINDEX(@split_str,@Long_str)

24 IF @split_str_Position_Begin=0

25 BEGIN

26 IF LTRIM(@Long_str)''

27 INSERT INTO @tmp SELECT @Long_str

28 BREAK

29 END

30 END

31 END

32 RETURN

33 END


当前标题:分割sqlserver,分割构成
地址分享:http://ybzwz.com/article/dssgjci.html