创建表
create table bb (studentid varchar(100),markstr varchar(50))
insert into bb select
'2002081108','AAAAAAAAAAAAAAAAAAAAAAAAA' union all select
'2002081107','BBBBBBBBBBBBBBBBBBBBBBBBB' union all select
'2002081109','CCCCCCCCCCCCCCCCCCCCCCCCC' union all select
'2002081110','DDDDDDDDDDDDDDDDDDCDCDDCC' union all select
'2002081111','DDDEEDDDDDDDDDDEDDCDCDDCC'
---笨办法,写死的长度为25
select studentid,substring(markstr,1,1) as no1,substring(markstr,2,1) as no2,substring(markstr,3,1) as no3,
substring(markstr,4,1) as no4,substring(markstr,5,1) as no5,substring(markstr,6,1) as no6,substring(markstr,7,1) as no7,
substring(markstr,8,1) as no8,substring(markstr,9,1) as no9,substring(markstr,10,1) as no10,substring(markstr,11,1) as no11,
substring(markstr,12,1) as no12,substring(markstr,13,1) as no13,substring(markstr,14,1) as no14,substring(markstr,15,1) as no15,
substring(markstr,16,1) as no16,substring(markstr,17,1) as no17,substring(markstr,18,1) as no18,substring(markstr,19,1) as no19,
substring(markstr,20,1) as no20,substring(markstr,21,1) as no21,substring(markstr,22,1) as no22,substring(markstr,23,1) as no23,
substring(markstr,24,1) as no24,substring(markstr,25,1) as no25 into aa from bb
--drop table aa
--创建存储过程,动态生成n项
create proc proc_createtablegselectmarksplit
as
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablegselectmarksplit]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tablegselectmarksplit]
declare @i int
declare @t int
declare @sql varchar(8000)
set @sql=''
set @t=1
select @i=max(len(markstr)) from bb
while(@t<=@i)
begin
set @sql=@sql+',substring(markstr,'+cast(@t as varchar)+',1) as no'+cast(@t as varchar)
set @t=@t+1
end
set @sql= 'select studentid,'+stuff(@sql,1,1,'')+' into tablegselectmarksplit from bb '
exec(@sql)
--查询拆分完的结果表
select * from tablegselectmarksplit
分享到:
相关推荐
2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 3、检查一个元素是否在数组中,返回1或0 4、检查一个元素是否与数组中的相匹配,并返回相匹配的数组的值。参数值为0表示全模糊...
自己写了一个function 用于处理拆分时的逻辑运算,性能比网上找的快好几倍, 代码和说明:https://blog.csdn.net/jimyao37/article/details/123522885
### SQL拆分字符串知识点详解 在SQL Server中,经常需要对字符串进行操作,例如分割、合并等。本文将详细介绍如何使用SQL Server中的存储过程来实现字符串的拆分,并通过一个具体的例子来展示整个过程。 #### SQL...
总结起来,SQL Server 2008中拆分字符串通常需要自定义解决方案,如上述的交叉连接方法。虽然这个方法可以工作,但在处理大量数据时,可能需要寻找更优化的策略,例如使用用户定义的函数(UDF),或者在支持的版本中...
该临时表只有一字段,字段的类型根据要拆分字符串里的实际数据类型。 2. 利用 SQL Server 函数进行字符串拆分:可以使用 SQL Server 的字符串函数,例如 CHARINDEX、LEFT、RIGHT、LEN 等函数对字符串进行拆分。 3....
Sql Server数据库中自定义拆分字符串函数Split()
sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值
在本实例中,我们将深入探讨如何解析SQL Server的连接字符串,这是一个编程任务,主要涉及C++和.NET框架。理解并正确处理连接字符串对于任何需要访问SQL Server数据库的应用程序都至关重要。 首先,SQL Server连接...
本文将详细介绍如何使用SQL Server 2000中的T-SQL语言实现字符串的拆分功能,并提供具体的代码示例。 #### 标题解读:“sql2000字符串分割,字符串拆分” 此标题指明了文章的主要内容是关于如何在SQL Server 2000...
内置的`STRING_SPLIT`函数是SQL Server 2016引入的,用于按分隔符拆分字符串,但这个函数可能无法满足所有特殊字符拆分需求,例如,它不支持正则表达式。在这种情况下,开发者可能会创建自定义函数,如`...
在SQL Server中,字符串处理是常见的任务之一,而字符串切割函数则是处理字符串的重要工具。本文将深入探讨SQL Server中的字符串切割函数,特别是如何创建和使用用户定义函数来实现这一功能。 首先,我们要明白用户...
可根据关键字符将一列分成多行显示,例如 A B 1 1.1.2 拆分成 1 1 1 1 1 2 进行相关的显示
代码如下: DECLARE @idoc int; DECLARE @doc xml; set @doc=cast(‘<Root><item>’+replace(@SelectedProjectArray,’,’,'</ProjID></item><item><ProjID>’)+'</ProjID></item>’ as xml) EXEC sp_xml_...
在SQL Server中,经常需要处理字符串操作,例如将一个包含多个值的字符串拆分成多个行。这种需求常见于数据导入、数据清洗等场景。本篇文章将详细介绍如何利用SQL Server自定义函数实现字符串拆分并转化为表格形式的...
在SQL Server中,当需要将一个字符串按照特定的分隔符进行拆分成多个子字符串时,通常会遇到问题,因为SQL Server的标准库中并没有提供内置的Split函数。为了解决这个问题,开发人员经常需要创建自定义的函数来实现...
Base64编码能够确保数据在传输过程中不被篡改,因为它是通过特定算法将二进制数据转换为一种标准格式的文本字符串。本文将详细讲解如何在SQL Server 2005中实现Base64的加密和解密功能。 一、Base64编码原理 Base64...
标题和描述提到的“sqlserver 字符串分拆 语句”是指SQL Server中用于将字符串分拆成多个部分的方法。下面我们将详细探讨如何在SQL Server中实现这个功能。 首先,SQL Server并没有内置的函数可以直接对字符串进行...
本文实例讲述了SQL Server实现将特定字符串拆分并进行插入操作的方法。分享给大家供大家参考,具体如下: --循环执行添加操作 declare @idx as int While Len(@UserList) > 0 Begin Set @idx = Charindex(',', @...