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 (@Index<=@Count)
BEGIN
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

(0)

相关推荐

  • 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 @Coun

  • 详解SqlServer数据库中Substring函数的用法

    功能:返回字符.二进制.文本或图像表达式的一部分 语法:SUBSTRING ( expression, start, length ) 1.substring(操作的字符串,开始截取的位置,返回的字符个数) 例如: 从'abbccc'中返回'ccc',charindex函数用法(charindex(查找的字符串,被查找的字符串,开始查找的位置),例如查找'abbccc'中第一个'c'出现的位置,charindex('c','abbccc',1)) declare @str1 varchar(25

  • 在SQLServer 2005中编写存储过程

    然而,在SQL Server 2005中,我们可以用.NET家族的语言--主要是VB.NET和C#来编写存储过程(以及方法.触发器和其它组件).让我们来熟悉一下关于编写存储过程新方法的5个常见问题.它们是非常值得我们探讨的. 1.为什么我们必须使用CLR模式来编写存储过程呢? 主要原因是速度.SQL CLR在很多方式下都运行较快:比如字符串处理,它比T-SQL运行快很多,并且对于错误的处理能力也更加强大.同时,由于CLR所提供的来执行这些事务的框架都更为完善,因此任何需要与数据库之外资源进行事务

  • SqlServer 2005的排名函数使用小结

    尽管从技术上讲,其它排名函数的计算与ROW_NUMBER类似,但它们的的实际应用却少很多.RANK和DENSE--RANK主要用于排名和积分.NTILE更多地用于分析. 先创建一个示例表: 复制代码 代码如下: SET NOCOUNT ON USE [tempdb] IF OBJECT_ID('Sales')IS NOT NULL DROP TABLE sales CREATE TABLE Sales ( empid VARCHAR(10) NOT NULL PRIMARY KEY, mgrid

  • SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)

    --用SQL多条可以将多条数据组成一棵XML树L一次插入 --将XML树作为varchar参数传入用 --insert xx select xxx from openxml() 的语法插入数据 -----------------------------------导入,导出xml-------------------------- --1导入实例 --单个表 create table Xmltable(Name nvarchar(20),Nowtime nvarchar(20)) declare

  • SqlServer 2005中使用row_number()在一个查询中删除重复记录

    下面我们来看下,如何利用它来删除一个表中重复记录: 复制代码 代码如下: If Exists(Select * From tempdb.Information_Schema.Tables Where Table_Name Like '#Temp%') Drop Table #temp Create Table #temp ([Id] int, [Name] varchar(50), [Age] int, [Sex] bit default 1) Go Insert Into #temp ([Id

  • PHP中字符安全过滤函数使用小结

    在WEB开发过程中,我们经常要获取来自于世界各地的用户输入的数据.但是,我们"永远都不能相信那些用户输入的数据".所以在各种的Web开发语言中,都会提供保证用户输入数据安全的函数.在PHP中,有些非常有用并且方便的函数,它们可以帮助你防止出现像SQL注入攻击,XSS攻击等问题. 1. mysql_real_escape_string() 这个函数曾经对于在PHP中防止SQL注入攻击提供了很大的帮助,它对特殊的字符,像单引号和双引号,加上了"反斜杠",确保用户的输入在

  • php中字符查找函数strpos、strrchr与strpbrk用法

    本文实例讲述了php中字符查找函数strpos.strrchr与strpbrk用法.分享给大家供大家参考.具体如下: ① strpos() 函数返回字符串在另一个字符串中第一次出现的位置,如果没有找到该字符串,则返回 false. 语法:strpos(string,find,start),代码如下: 复制代码 代码如下: $str="hello world";          //定义字符串1 $result=strpos($str,"ll");        

  • PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法

    本文实例讲述了PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法.分享给大家供大家参考,具体如下: PHP中的strncmp()函数用于比较两个字符串(区分大小写),可判断两个字符串前n个字符是否相等. strncmp()函数定义如下: strncmp(string1,string2,length) 参数说明: string1 必需.规定要比较的首个字符串. string2 必需.规定要比较的第二个字符串. length 必需.规定比较中所用的每个字符串的字符数. 返回值说明:

  • thinkphp中字符截取函数msubstr()用法分析

    本文实例讲述了thinkphp中字符截取函数msubstr()用法.分享给大家供大家参考,具体如下: ThinkPHP有一个内置字符截取函数msubstr()如下: msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) $str:要截取的字符串 $start=0:开始位置,默认从0开始 $length:截取长度 $charset="utf-8":字符编码,默认UTF-8 $suffix=tr

随机推荐