Heim > Datenbank > MySQL-Tutorial > SqlServer 2005 中字符函数的应用

SqlServer 2005 中字符函数的应用

WBOY
Freigeben: 2016-06-07 18:05:04
Original
1105 Leute haben es durchsucht

SqlServer 2005 中字符函数的应用,需要的朋友可以参考下。

代码如下:
USE Demo
GO
/*
将表Code的列String中的值提取放到Record表中
String 中字符类型为
dsddddd,2222222,222221,3
其中最后一位为标记对于Record表中的BiaoJi
前面的以','分割的是值对应Record表中Value
*/
GO
DROP PROC proc_split_Code
GO
CREATE PROC proc_split_Code
AS
BEGIN
SET NOCOUNT ON

DECLARE @Count INT --条数
DECLARE @Index INT --变量
SET @Index = 1 --默认
SELECT @Count = Count(*) FROM Code
--PRINT @Count
WHILE (@IndexBEGIN
DECLARE @BiaoJi INT -- 标记
DECLARE @String NVARCHAR(1000)--字符串
DECLARE @Temp INT --分隔符的位置
DECLARE @Star INT --开始位置
DECLARE @Code NVARCHAR(100) --
SET @Star = 0
SELECT @String=REVERSE(String)
FROM (
SELECT row_number() OVER(ORDER BY String) AS rownumber,* FROM Code
) AS a
WHERE rownumber between @Index and @Index

SET @Temp=CHARINDEX(',',@String,@Star)
SET @BiaoJi = SUBSTRING(@String,@Star,@Temp)
PRINT @BiaoJi
SET @String = REVERSE(@String)
SET @Temp=CHARINDEX(',',@String,@Star)
SET @Star = 0
WHILE(@Temp>0)
BEGIN

SET @Temp=CHARINDEX(',',@String,@Star)

--PRINT @Star
--PRINT @Temp

IF @Temp >0
BEGIN
SET @Code=SUBSTRING(@String,@Star,@Temp-@Star)
PRINT @Code
--插入到相应的表中
INSERT INTO Record(BiaoJi,Value,Time)
VALUES (@BiaoJi,@Code,getdate())

END
SET @Star=@Temp+1
END

--PRINT @Index
PRINT @String
SET @Index = @Index+1
END
END
GO

EXEC proc_split_Code
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage