`

存储过程拆分字段,形成表

 
阅读更多

一、拆分的存储过程

 

ALTER FUNCTION [dbo].[GLXSDeal_F](@guid VARCHAR(50),@str varchar(1000),@flag VARCHAR(10))

Returns @tableName Table

(

taskGuid VARCHAR(50),

str2table varchar(50)

)

As

--该函数用于把一个用逗号分隔的多个数据字符串变成一个表的一列,例如字符串'1,2,3,4,5' 将编程一个表,这个表

Begin

set @str = @str+@flag

Declare @insertStr varchar(50) --截取后的第一个字符串

Declare @newstr varchar(1000) --截取第一个字符串后剩余的字符串

set @insertStr = left(@str,charindex(@flag,@str)-1)

set @newstr = stuff(@str,1,charindex(@flag,@str),'')

Insert @tableName Values(@guid,@insertStr)

while(len(@newstr)>0)

begin

   set @insertStr = left(@newstr,charindex(@flag,@newstr)-1)

   Insert @tableName Values(@guid,@insertStr)

   set @newstr = stuff(@newstr,1,charindex(@flag,@newstr),'')

end

Return

End

 

 

 

二、调用拆分过程的存储过程,可以传递参数,按传递的参数拆分字符串

ALTER PROCEDURE [dbo].[StrToTable]

 

    

As

--该函数用于把一个用逗号分隔的多个数据字符串变成一个表的一列,例如字符串'1,2,3,4,5' 将编程一个表,这个表

IF EXISTS  (SELECT  * FROM dbo.SysObjects WHERE ID = object_id(N'[#TmpGLXS]') AND OBJECTPROPERTY(ID, 'IsTable') = 1) 

drop table #TmpGLXS

 

CREATE Table #TmpGLXS 

(

   taskGuid VARCHAR(32),

str2table varchar(50)

)

 

 

Begin

 

Declare @CTLGuid varchar(1000) 

Declare @str varchar(20) 

Declare Cur Cursor For 

 

SELECT CTLGuid,IGLXS FROM dbo.TaskLineBudget 

Open Cur 

Fetch next From Cur Into @CTLGuid,@str 

While @@fetch_status=0 

BEGIN

 

 

INSERT INTO #TmpGLXS(taskGuid,str2table)  

--flag  为  ','

SELECT * FROM [dbo].[GLXSDeal_F](@CTLGuid,@str,',')

 

Fetch next From Cur Into @CTLGuid,@str 

End

Close Cur 

Deallocate Cur 

 

SELECT * FROM #TmpGLXS

End

分享到:
评论

相关推荐

    Oracle函数:根据自定义分隔符拆分字段SPLIT-STR()然后查询检索数据库表数据

    6、灵活的数据检索:不仅能拆分字段,还能根据您的需求检索出特定的数据项,无论是查找、统计还是进一步处理,都能轻松应对。 7、高效字段拆分:此函数能够迅速将字段中的多个值按逗号或其他自定义分隔符拆分成独立...

    Kettle列拆分多行

    3. **输出步骤**:拆分后的数据将被送到新的输出步骤,比如"表输出"或者"CSV文件输出",以便进一步处理或存储。 在"拆分字段到行"步骤中,我们需要做以下设置: - **字段**:选择需要拆分的字段,例如"items"。 - *...

    SQL字段拆分优化

    3. **使用函数拆分字段**:通过SQL内置函数如`LEFT`, `RIGHT`, `SUBSTRING`等,根据业务需求拆分字段,使得查询更高效。 4. **利用索引**:确保关键字段有合适的索引,以加快数据检索速度。 5. **优化查询结构**:...

    ArcGIS按属性字段分离输出图层

    2. **指定拆分字段**:接着,指定你想要基于哪个字段进行拆分。在这个例子中,“类型”字段就是我们的拆分依据。 3. **设置输出格式**:你可以选择将结果输出为.shp文件(Shapefile),这是一种常见的矢量数据格式...

    Sql拆分字符串

    比如,一个字段存储了以逗号分隔的商品ID列表,为了方便后续处理,我们需要将其拆分成单独的记录。这样的需求可以通过编写SQL语句或存储过程来实现。 #### SQL存储过程简介 存储过程是一种预编译的SQL代码块,可以...

    SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据.docx

    接下来,我们创建一个示例表 `db_TestTemp`,其中包含一个字段 `Engineer`,类型为 `NVARCHAR(MAX)`,用于存储需要拆分的字符串。 ```sql CREATE TABLE db_TestTemp ( Engineer NVARCHAR(MAX), BeginDate DATE...

    excel宏(将一个工作簿拆成多个工作表)

    ### Excel宏:将一个工作簿拆分成多个工作表 在Excel中,我们经常需要处理大量数据,有时这些数据被组织在一个较大的工作簿中。对于数据分析、管理或是分享来说,将一个大工作簿拆分为多个小的工作表可能会更加方便...

    sqlserver的存储过程与 where in 多值参数

    表变量可以看作是一种轻量级的临时表,它允许我们在存储过程中存储一组数据。这种方法更为安全且性能更好,因为它避免了SQL注入的风险,并且可以利用索引来优化查询。 ```sql CREATE PROCEDURE usp/DeleteByIds (@...

    csv拆分工具.rar

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以逗号作为字段分隔符,使得数据在纯文本文件中以表格形式呈现。在处理大量数据时,尤其是当CSV文件体积过大时,一次性读取和解析可能会消耗大量系统资源...

    excel拆分工作薄.txt

    根据提供的文件信息,本文将详细解释如何通过VBA(Visual Basic for Applications)代码来实现Excel工作簿中每个工作表的拆分,即将一个包含多个工作表的工作簿拆分为多个独立的工作簿,每个工作簿只包含原工作簿中...

    csv数据拆分软件

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以逗号作为字段分隔符,使得数据在纯文本文件中以表格的形式呈现。在数据分析、数据导入导出以及数据库管理等领域,CSV文件广泛被使用。"csv数据拆分软件...

    CSV 快速拆分工具

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以逗号作为字段分隔符,使得数据在纯文本文件中可读且易于处理。在处理大量数据时,有时我们需要将一个大型CSV文件拆分为多个小文件,以便于管理、分析或...

    Excel指定分类拆分工具

    该工具的主要功能是依据用户设定的分类字段,将原始数据表中的记录按照指定条件拆分成多个独立的工作表,每个工作表对应一类数据,便于后续的数据分析和处理。 二、操作流程 1. 数据准备:首先,用户需要将待处理的...

    自动拆分总表数据.zip

    标题 "自动拆分总表数据.zip" 暗示了这个压缩包可能包含一个或多个文件,用于自动化处理大量数据并将其拆分为更小、更易管理的部分。在这个场景下,我们关注的重点是数据管理和自动化处理,特别是对于大型数据集的...

    数据库+分表分库+垂直拆分与水平拆分

    分表分库是指将一个大的数据表或数据库拆分成多个较小的数据表或数据库的过程。这种做法能够有效提升数据库的扩展性,并通过降低单个表的大小来提高查询效率。分表分库通常有两种方式:垂直拆分和水平拆分。 #### ...

    将一个字段中的名称分为两个或多个字段未知

    2. **使用Access内置功能**:Access提供了一些基本的数据处理功能,比如“查找和替换”、“文本到列”等,可以尝试使用这些工具初步拆分字段。 3. **VBA编程**:如果内置功能无法满足需求,可以编写VBA宏。创建一个...

    CSV拆分工具.exe

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以逗号作为字段分隔符,广泛用于数据交换和导入导出。CSV文件因其简单、通用性而被各种应用程序所支持,包括电子表格软件如Microsoft Excel和数据分析...

    存储过程编写经验和优化措施

    - **临时表清理**:存储过程结束时,使用truncate table和drop table清除临时表,减少系统表锁定。 - **避免大表连接**:减少大临时表与其他大表的复杂查询和修改,减轻tempdb压力。 6. **算法选择**:结合SQL...

    sql2000数据拆分

    具体来说,就是如何将一个包含逗号分隔值的字段拆分成多行记录。 ### SQL Server 2000 数据拆分技术 #### 1. **背景与目标** - **表结构**: 表`tb`具有两个字段:`id`和`value`。 - `id`: 唯一标识每条记录。 -...

    一分钟掌握数据库垂直拆分

    - **定义**:垂直拆分则是将一个大表按照字段的不同特性拆分为几个较小的表,每个表包含原表的部分字段。 - **特点**: - 分拆后的表结构不同。 - 通常每个表至少有一列交集(通常是主键)。 - 所有拆分表的数据...

Global site tag (gtag.js) - Google Analytics