sql server-sqlserver存储过程 分割字符串再组装

问题描述

sqlserver存储过程 分割字符串再组装

有三个字符串。比如。A=“440,441,442,443”,B="a,b,c,d" ,C=“1,2,3,4”.三个字符串里面的值是一一对应的。
在存储过程里面如何把这三个字符串分割之后然后组装成 440,a,1;441,b,2;442,c,3;443,d,4;
最好有一个规范的。多谢了。

解决方案

CREAT PROCEDURE [dbo].[Pro_STR]

@A nvarchar(200)='440,441,442,443',
@B nvarchar(200)='a,b,c,d',
@C nvarchar(200)='1,2,3,4'

AS
BEGIN
DECLARE @result nvarchar(4000)
DECLARE @strSQL nvarchar(4000)

set @result=''
set @A=@A+','
set @B=@B+','
set @C=@C+','

WHILE CHARINDEX(',',@A)>0
    BEGIN
        set @result=@result+LEFT(@A,CHARINDEX(',',@A)-1)+','+LEFT(@B,CHARINDEX(',',@B)-1)+','+LEFT(@C,CHARINDEX(',',@C)-1)+';'
        SET @A=STUFF(@A,1,CHARINDEX(',',@A),'')
        SET @B=STUFF(@B,1,CHARINDEX(',',@B),'')
        SET @C=STUFF(@C,1,CHARINDEX(',',@C),'')
    END
set @strSQL='select '''+ @result +''''
exec(@strSQL)

END


解决方案二:

这代码片怎么给切分了,你复制一下 运行一下就行

STUFF用法:
http://www.cnblogs.com/345563452/archive/2009/10/29/1592048.html

CHARINDEX用法:
http://www.cnblogs.com/beeone/p/3621743.html

希望对你有帮助

解决方案三:

用MySQL存储过程分割字符串
逗号分割字符串存储过程

时间: 2024-09-20 17:26:13

sql server-sqlserver存储过程 分割字符串再组装的相关文章

SQL Server中存储过程比直接运行SQL语句慢的原因

原文:SQL Server中存储过程比直接运行SQL语句慢的原因     在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1.       存储过程只在创造时进行编译即可,以后每次执行存储过程都不需再重新编译,而我们通常使用的SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度. 2.       经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作.当对数据库进行复杂操作时(如对多个表进行 Upd

简单谈基于SQL SERVER 分页存储过程的演进

server|存储过程|分页 简单谈基于SQL SERVER 分页存储过程的演进 作者:郑佐日期:2006-9-30 针对数据库数据在UI界面上的分页是老生常谈的问题了,网上很容易找到各种"通用存储过程"代码,而且有些还定制查询条件,看上去使用很方便.笔者打算通过本文也来简单谈一下基于SQL SERVER 2000的分页存储过程,同时谈谈SQL SERVER 2005下分页存储过程的演进. 在进行基于UI显示的数据分页时,常见的数据提取方式主要有两种.第一种是从数据库提取所有数据然后在

SQL Server 2005存储过程编写指导

    本文让我们谈谈关于这种编写存储过程的新方法的五个常见问题.它们值得你一读的-- 在SQL Server 2000中,只有一种方法编写存储过程:使用T-SQL 语句.学习以前版本的SQL Server中存储过程的编写是一门课程.但是SQL Server 2005让你使用.NET语言家族(主要是VB.NET和C#)来编写存储过程(以及函数.触发器和其他的一些东西)成为可能. 1. 我为什么要使用CLR模型来写存储过程? 主要是因为数据.SQL CLR在一些方面执行较快:其中,字符串处理要比T

SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF

原文:SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF 本来用 Writer 写一篇关于一列多行合并的博客来的,结果快写完了时候,在一个插入代码时候,崩了,重新打开,居然连草稿都没有--哎,我也是无语了-- 于是没有心情再写,直接发一下代码,再顺便留几个其他博文的链接 1.FOR XML PATH http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html 2.STUFF http://www

SQL Server 优化存储过程的七种方法

原文:SQL Server 优化存储过程的七种方法 优化存储过程有很多种方法,下面介绍最常用的7种. 1.使用SET NOCOUNT ON选项 我们使用SELECT语句时,除了返回对应的结果集外,还会返回相应的影响行数.使用SET NOCOUNT ON后,除了数据集就不会返回额外的信息了,减小网络流量. 2.使用确定的Schema 在使用表,存储过程,函数等等时,最好加上确定的Schema.这样可以使SQL Server直接找到对应目标,避免去计划缓存中搜索.而且搜索会导致编译锁定,最终影响性能

SQL Server实现将特定字符串拆分并进行插入操作的方法_MsSql

本文实例讲述了SQL Server实现将特定字符串拆分并进行插入操作的方法.分享给大家供大家参考,具体如下: --循环执行添加操作 declare @idx as int While Len(@UserList) > 0 Begin Set @idx = Charindex(',', @UserList); --只有一条数据 If @idx = 0 and Len(@UserList) > 0 Begin Insert Into BIS_MsgCenterInfo(ID,MsgID,UserI

浅谈基于SQL Server分页存储过程五种方法及性能比较

在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userName nvarchar(20) not null, userPWD nvarchar(20) not null, u

五种SQL Server分页存储过程的方法及性能比较_MsSql

在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览.本文我们总结了五种SQL Server分页存储过程的方法,并对其性能进行了比较,接下来就让我们来一起了解一下这一过程. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userN

五种SQL Server分页存储过程的方法及性能比较

在SQL Server数据库操作中,我们常常会用到存储过程对实现对查询的数据的分页处理,以方便浏览者的浏览.本文我们总结了五种SQL Server分页存储过程的方法,并对其性能进行了比较,接下来就让我们来一起了解一下这一过程. 创建数据库data_Test : create database data_Test GO use data_Test GO create table tb_TestTable --创建表 ( id int identity(1,1) primary key, userN