中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
SQL分隔字符串的存储过程
作者:未知 时间:2003-05-19 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无
我在做一个项目时研究了查询多个关键字的技术,这是其中用到的一个技术。
“分隔字符串”存储过程的作用就是把“jiangjs,shenxy,cheng”类的字符串隔开保存到一个表中。
 
 
CREATE PROCEDURE [分隔字符串]
(
 @String NVARCHAR(1000),  -- 要分隔的字符串
 @SPLITCHAR NVARCHAR(10) = ',', -- 分隔字符
 @TableName NVARCHAR(50),  -- 存入的表名称
 @FieldName NVARCHAR(50) = '[ID]' -- 存入的字段名称
)
AS
 
-- 将字符串分隔开放进表中
 
DECLARE @L INT -- 第一个分隔字符的位置
DECLARE @S INT -- 第二个分隔字符的位置
SET @L = 0
SET @S = CHARINDEX(@SPLITCHAR, @String, @L)
 
WHILE @L <= LEN(@String)
BEGIN
 DECLARE @ID NVARCHAR(50) 
 
 IF @S = 0 SET @S = LEN(@String) + 1 -- 如果到最后一个字符串那么第二个分隔字符的位置就是这个字符串的长度加一
 
 SET @ID = SUBSTRING(@String, @L, @S - @L) -- 取值
 SET @L = @S + 1
 SET @S = CHARINDEX(@SPLITCHAR, @String, @L)
 
 IF LTRIM(RTRIM(@ID)) = '' CONTINUE -- 如果是空字符串就跳过
 
 DECLARE @SQL NVARCHAR(1000)
 SET @SQL = 'INSERT INTO ' + @TableName + ' ('+ @FieldName +') VALUES(''' + @ID + ''')'
 EXEC sp_executesql @SQL
END
GO
 
----------
Not
MSN Messenger : notking@hotmail.com
 
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有