数据-sql存储过程的问题,拆分并加值

问题描述

sql存储过程的问题,拆分并加值

传入‘1,2,3’怎么拆分并分别加入到表里面 (三条数据)

解决方案

 create function func_splitstring
(@str nvarchar(max),@split varchar(10))
returns @t Table (c1 varchar(100))
as
begin
    declare @i int
    declare @s int
    set @i=1
    set @s=1
    while(@i>0)
    begin
        set @i=charindex(@split,@str,@s)
        if(@i>0)
        begin
            insert @t(c1) values(substring(@str,@s,@i-@s))
        end
        else begin
            insert @t(c1) values(substring(@str,@s,len(@str)-@s+1))
        end
        set @s = @i + 1
    end
    return
end

解决方案二:

http://www.cnblogs.com/eleven11/archive/2010/08/17/1800901.html

解决方案三:

单纯的截取能处理的话用substr()函数
从起始截取放入字段1、从第一个逗号截取放入字段2、从第二个逗号截取放入字段3。
如果不行,这个还要看你实际情况,用楼上的存储过程的思路也可以。

时间: 2024-08-30 05:18:10

数据-sql存储过程的问题,拆分并加值的相关文章

EF怎么获取SQL存储过程的output或return的值

问题描述 我调的一个分页的存储过程,代码如下:ALTERPROCEDURE[dbo].[sp_Page]/****************************************************************参数说明:1.Tables:表名称,视图,多表查询可用视图做2.PrimaryKey:主关键字3.Sort:排序语句,不带OrderBy比如:NewsIDDesc,OrderRowsAsc4.CurrentPage:当前页码5.PageSize:分页尺寸6.Fiel

查询-sql 未满足条件时再加一条数据

问题描述 sql 未满足条件时再加一条数据 有表aa : ID , PID 1 , 5 2 , 4 3 , 20 4 , 11 5 , 2 条件 PID<=10 就查询出前三条数据条件 PID<=6 就查询出前两条数据 要怎么写 解决方案 下面是oracle的,各个数据的取前2条和前三条关键字不一样,有些是top有些事limit,有些事rownum SELECT IDPID FROM AA WHERE PID<=10 AND ROWNUM<=3 UNION SELECT IDPID

sql生成(插入、修改、删除数据的存储过程)代码的存储过程

GO /****** 对象: StoredProcedure [dbo].[pro_GenerateProSet] 脚本日期: 08/03/2012 11:26:43 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateProSet]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[pro_GenerateP

ASP.Net学习之常用SQL存储过程

asp.net|存储过程 在ASP.Net项目中使用存储过程,首先可以提高数据库的安全性,其次可以提高运行SQL代码运行的速度,在大型项目中一般是必不可少的.Visual Studio.Net为SQL的存储过程提供了强大的支持,您既可以通过visual studio.net来新建存储过程,也可以直接在Sql Server的查询分析器中运行,还可以通过企业管理器创建,使用起来也非常方便.大家一直都误认为SQL存储过程是一个比较"高深"的技术,其实掌握一般的语法是没有什么大问题的,而我们在

JAVA中对存储过程的调用方法(六) 增加数据的存储过程

六.增加数据的存储过程 ------------存储过程-------------------- create procedure InsertPro @StuID int, @StuName varchar(10), @StuAddress varchar(20) as insert into 学生基本信息表 values(@StuID,@StuName,@StuAddress) -----------调用存储过程--------------- exec InsertPro 5,'555','

JAVA中对存储过程的调用方法(五) 查询数据的存储过程(模糊查询)

五.查询数据的存储过程(模糊查询) -----------------存储过程--------------------- create procedure FindCusts @cust varchar(10) as select customerid from orders where customerid like '%'+@cust+'%' ---------------执行--------------------------- execute FindCusts 'alfki' ----

JAVA中对存储过程的调用方法(四) 修改数据的存储过程

四.修改数据的存储过程 ---------------------创建存储过程--------------------- create procedure ModPro @StuID int, @StuName varchar(10) as update 学生基本信息表 set StuName=@StuName where StuID=@StuID -------------执行存储过程------------------------- exec ModPro 2,'四毛' ----------

JAVA中对存储过程的调用方法(三) 删除数据的存储过程

三.删除数据的存储过程 ------------------存储过程-------------------------- drop table 学生基本信息表 create table 学生基本信息表 ( StuID int primary key, StuName varchar(10), StuAddress varchar(20) ) insert into 学生基本信息表 values(1,'三毛','wuhan') insert into 学生基本信息表 values(2,'三毛','

asp.net sql存储过程_实用技巧

Visual Studio.Net为SQL的存储过程提供了强大的支持,您既可以通过visual studio.net来新建存储过程,也可以直接在Sql Server的查询分析器中运行,还可以通过企业管理器创建,使用起来也非常方便.大家一直都误认为SQL存储过程是一个比较"高深"的技术,其实掌握一般的语法是没有什么大问题的,而我们在使用存储教程中也主要是增删减的操作,学会使用一般的T-SQL就很容易上手了. 我们先来看一下在Sql-server中是如何创建一个存储过程的吧,我们可以使用S