`
Harold_xlp
  • 浏览: 159360 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

传多个值放到存储过程的一个变量中的处理方法

阅读更多

CREATE FUNCTION [dbo].[fn_ParseDelimitedStrings](@String nvarchar(MAX), @Delimiter char(1))
RETURNS @Values TABLE
(
     RowId
int Not Null IDENTITY(1,1) PRIMARY KEY
    ,Value
nvarchar(255) Not Null
)
AS
BEGIN
   
DECLARE  @startPos smallint
            ,
@endPos smallint

   
IF (RIGHT(@String, 1) != @Delimiter)
       
SET @String = @String + @Delimiter
   
SET @startPos = 1
   
SET @endPos = CharIndex(@Delimiter, @String)
   
WHILE @endPos > 0
       
BEGIN
           
INSERT @Values(Value)
           
SELECT LTRIM(RTRIM(SUBSTRING(@String, @startPos, @endPos - @startPos)))
           
-- remove the delimiter just used
            SET @String = STUFF(@String, @endPos, 1, '')
           
-- move string pointer to next delimiter
            SET @startPos = @endPos
           
SET @endPos = CHARINDEX(@Delimiter, @String)
   
END
   
RETURN
END

<!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin. http://dunnhq.com -->

This function can be used in sample stored procedure below.

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->CREATE PROCEDURE GetCustomers 
    @customerIDs AS nvarchar
AS
BEGIN
    DECLARE @custIDs AS table (Value nvarchar(255) Not Null)
    INSERT INTO @custIDs
        SELECT Value FROM [fn_ParseDelimitedStrings](@customerIDs, ',') 
    SELECT * FROM Orders WHERE CustomerID IN (SELECT Value FROM @custIDs)
END
分享到:
评论

相关推荐

    SQLServer中如何将一个字段的多个记录值合在一行显示

    SQLServer 中将一个字段的多个记录值合并到一行显示的实现方法 SQL Server 是一种关系型数据库管理系统,具有强大的数据处理能力和存储能力。在实际应用中,我们经常需要将一个字段的多个记录值合并到一行显示,以...

    TIA博途中如何使用MAX和MIN数学函数求取几个变量的最大值和最小值?.docx

    在TIA博途中,利用MAX和MIN数学函数可以轻松地找出一组变量中的最大值和最小值,这对于数据处理和分析非常有用。以下是如何在TIA博途中操作这些函数的详细步骤: 1. 首先,创建一个新的项目。在TIA博途软件中,选择...

    kettle8 模拟表输入查询表名,然后在另一个表输入中使用变量使用

    以上就是关于“kettle8 模拟表输入查询表名,然后在另一个表输入中使用变量”的具体实现方法。这个功能对于处理多表数据源、动态数据加载等场景非常有用。通过熟练掌握变量的使用,你可以提高Kettle工作流的灵活性...

    将DOS中的结果输出到变量中

    ### 将DOS中的结果输出到变量中的方法 在Windows编程环境下,经常需要在C/C++应用程序中调用DOS命令来完成特定的任务。本文主要介绍如何通过`CreateProcess()`函数与管道技术相结合的方式,在VC++环境中执行DOS命令...

    servlet是如何同时处理多个请求的

    - 当多个请求同时到达Servlet时,Tomcat会从线程池中取出空闲线程分配给这些请求,使得每个请求都可以调用同一个Servlet实例的`service`方法。由于多个线程可能同时访问同一实例,因此必须确保Servlet代码是线程...

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

    例如,一个存储过程内部的嵌套查询、循环或临时表使用,如果没有经过充分优化,可能成为性能瓶颈。 再者,存储过程的安全性和权限控制。存储过程可以限制对数据库资源的访问,只有授权的用户才能执行特定的存储过程...

    004对多个数据集处理.pdf

    数据集更新涉及到将一个数据集的内容合并到另一个数据集上,通常使用UPDATE过程,以其中一个数据集为基础,根据共享的键值(标识变量)将另一数据集的观测添加或更新到基础数据集中。 **四、数据集的更改** 数据集...

    易语言置入变量赋值

    总结来说,易语言置入变量赋值是编程中最基本的操作,涉及到变量的声明、赋值、类型、作用域和生命周期等多个方面。理解并熟练掌握这些知识点,对于编写高效、清晰的易语言程序至关重要。通过实践和不断的练习,你...

    一个储存过程,5300多行

    在这个例子中,`@dateFR_p`, `@dateTO_p`, `@cp_p`, `@dept_p`, `@class_name_p`, `@positn_p`, `@salary_type_p`, 和 `@ftycard_p`都是输入参数,用于传递不同类型的值到存储过程中。参数类型包括日期(datetime)...

    防止多个地方调用相同一个过程

    "防止多个地方调用相同一个过程"这个主题,主要涉及到程序设计中的模块化、重用性以及并发控制。这个问题的核心是避免重复代码(DRY,Don't Repeat Yourself)原则,以及在多线程或并发环境下如何避免冲突。 1. **...

    ios 导航栏放置多个按钮及引申的ivar变量的问题

    ivar(实例变量)是Objective-C类中用于存储数据的私有变量,它们在对象生命周期内持有特定值。当需要管理多个按钮时,可能需要为每个按钮创建一个ivar来保存其状态,例如选中、未选中等。但是,过度使用ivar可能...

    静态变量的导入以及集合的运用

    在Java中,可以通过`import static`语句来直接导入一个类中的静态成员(包括静态变量和静态方法)。这种方式可以避免重复输入类名,使得代码更加简洁易读。例如,在给定的代码片段中: ```java import static java....

    取变量地址集合.rar

    3. 存储地址集合:在获取单个变量地址后,我们可以将这些地址放入一个数组或列表中,形成所谓的“地址集合”。例如,我们可以创建一个整型数组,然后使用循环结构将每个变量的地址存入数组的不同元素。 4. 遍历和...

    php常用到的系统变量

    当客户端发送Cookie到服务器时,这些值会被放入`$_COOKIE`数组中。例如,`$_COOKIE['username']`可获取名为'username'的Cookie值。 - **$_GET**:此数组包含了通过URL查询字符串传递的参数。例如,URL中的`?key=...

    VB求N的阶乘和静态变量的演示

    在这个例子中,`Static fact As Long`定义了一个静态变量`fact`,它会在每次调用`Factorial`子程序时保留上一次的值。这样,如果我们连续计算多个数字的阶乘,`fact`会存储上一次计算的结果,避免了重复计算,提高了...

    允许您在富文本字段中轻松使用CraftGlobals作为变量

    标题 "允许您在富文本字段中轻松使用CraftGlobals作为变量" 涉及到的是一个特定的CMS(内容管理系统)开发中的功能增强。Craft CMS 是一个流行的内容管理系统,以其灵活性和强大的模板系统著称。Craft Globals 是 ...

    Lua中的变量与赋值方法

    通过对Lua中变量与赋值方法的学习,我们了解到Lua语言在变量处理上的灵活性和便捷性。掌握这些基础知识有助于更好地利用Lua进行高效编程。此外,Lua还支持诸如多返回值函数等高级特性,这些特性极大地增强了Lua程序...

    labview数据放到表格中去

    在LabVIEW中,处理和显示数据的一个常见方式是将数据放入表格中。本教程将详细讲解如何在LabVIEW中实现这一操作。 首先,我们需要了解LabVIEW中的表格控件。表格控件是LabVIEW的一种UI元素,用于展示二维数据,类似...

    TIA博途中通过UDT实现IO地址映射到DB块中的具体方法.docx

    ### TIA博途中通过UDT实现IO地址映射到DB块中的具体方法 #### UDT简介与作用 在工业自动化领域,尤其是对于使用西门子PLC(Programmable Logic Controller)系统的工程师而言,理解并掌握如何利用统一数据类型...

    Matlab将图片像素化到Excel表格中

    本示例中,我们将探讨如何使用Matlab将图片像素化到Excel表格中,这是一个将数字图像与电子表格软件结合的有效方法。下面将详细介绍这个过程涉及的主要知识点。 首先,我们从【标题】"Matlab将图片像素化到Excel...

Global site tag (gtag.js) - Google Analytics