SQL分隔字符串的存储过程

原创 2003年05月22日 08:31:00
我在做一个项目时研究了查询多个关键字的技术,这是其中用到的一个技术。
“分隔字符串”存储过程的作用就是把“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
 

利用MySQL存储过程分割字符串

MySQL存储过程可以用于分割字符串,下面就为您详细介绍这种MySQL存储过程的用法,供您参考学习之用。 现有一段字符串,如apple,banana,orange,pears,grape,要把它按照...
  • yangjun19890825
  • yangjun19890825
  • 2014年11月04日 18:02
  • 1853

Mysql存储过程中字符串分割

今在项目中碰到了要把字符串分割,记录下来,以后可能还用的到 首先想上我的存储过程代码 DELIMITER $$ USE `bplate`$$ DROP PROCEDURE IF EXISTS ...
  • itslz
  • itslz
  • 2016年12月08日 18:14
  • 1736

mysql 通过存储过程分割字符串为数组

分割字符串为数组需要用到 三个mysql 的函数 : REVERSE(str) 返回颠倒字符顺序的字符串str。 SUBSTRING_INDEX(str,delim,count) ...
  • u012373815
  • u012373815
  • 2016年08月16日 11:54
  • 8288

sql存储过程中分隔字符串

sql存储过程中分隔字符串
  • qq_34149805
  • qq_34149805
  • 2017年05月03日 22:09
  • 1018

一个字符串分隔多个参数存储过程调试

一个字符串分隔多个参数存储过程调试:   1,可以一个字符包含所有参数,用分隔符即可,在调试的时候\r\n对应的字符chr(13)||chr(10)不会被pl/sql的调试工具识别(程序中识别),...
  • y666666y
  • y666666y
  • 2017年04月17日 15:57
  • 192

SQL 分割字符串和通用分页查询存储过程

USE [sg]  --使用某个数据库 GO /****** Object:  StoredProcedure [dbo].[findTableIndex]    Script Date: 2017/...
  • TaLinBoy
  • TaLinBoy
  • 2017年04月01日 20:16
  • 779

sql存储过程版Split(字符串截取)

create proc SplitStr @AccountString varchar(max), --需要截取的字符串 @SplitChar varchar(10) --要截...
  • kyleing
  • kyleing
  • 2011年09月05日 14:49
  • 5358

解决存储过程中SQL字符串语句执行引入参数的问题

最近在写存储过程的时候,发现一个问题,是关于存储过程中字符串SQL中引入参数的问题。 且看下例: declare @count int select @count=count(*) from ...
  • chamychen
  • chamychen
  • 2013年05月17日 10:27
  • 4084

命令行用SQL文本字符串和调用存储过程

App.config: C# Code:   static void Main(string[] args) { ...
  • fyq_2011
  • fyq_2011
  • 2011年12月31日 04:42
  • 445

SQL存储过程通过传送数组字符串参数删除多条记录

CREATE PROCEDURE DeleteNews      @ID nvarchar(500)  as      DECLARE @PointerPrev int      DECLAR...
  • kunyin
  • kunyin
  • 2011年12月13日 18:26
  • 228
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL分隔字符串的存储过程
举报原因:
原因补充:

(最多只允许输入30个字)