`

sql server 2005中分隔列中数据

阅读更多
--建立辅助表
SET NOCOUNT ON;
USE AdventureWorks;
GO
IF OBJECT_ID('dbo.Nums'IS NOT NULL
  
DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT@rc AS INT;
SET @max = 1000000;
SET @rc = 1;

INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
  
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
  
SET @rc = @rc * 2;
END

INSERT INTO dbo.Nums
  
SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;

--示例表
IF OBJECT_ID('dbo.Arrays'IS NOT NULL
  
DROP TABLE dbo.Arrays;
GO

CREATE TABLE dbo.Arrays
(
  arrid 
VARCHAR(10)   NOT NULL PRIMARY KEY,
  array 
VARCHAR(8000NOT NULL
)

INSERT INTO Arrays(arrid, array) VALUES('A''20,22,25,25,14');
INSERT INTO Arrays(arrid, array) VALUES('B''30,33,28');
INSERT INTO Arrays(arrid, array) VALUES('C''12,10,8,12,12,13,12,14,10,9');
INSERT INTO Arrays(arrid, array) VALUES('D''-4,-6,-4,-2');

--实施方法
SELECT arrid, substring(array,n,charindex(',',array+',',n)-n), n
FROM dbo.Arrays
  
JOIN dbo.Nums
    
ON n <= LEN(array)
    
AND SUBSTRING(','+array, n, 1= ','
/**//*
select arrid,charindex(',',array+',',n)-n from dbo.Arrays  JOIN dbo.Nums
    ON n <= LEN(array)
    AND SUBSTRING(','+array, n, 1) = ','
*/

/**//*
SELECT arrid, array, n
FROM dbo.Arrays
  JOIN dbo.Nums
    ON n <= LEN(array)
    AND SUBSTRING(array, n, 1) = ','
*/
 
分享到:
评论

相关推荐

    Microsoft SQL Server 2005 Express Edition SP3

    未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL ...

    SQL SERVER 根据关键字符,将一列分成多行

    可根据关键字符将一列分成多行显示,例如 A B 1 1.1.2 拆分成 1 1 1 1 1 2 进行相关的显示

    sqlserver中去除字符串中连续的分隔符的sql语句

    以下测试用于去除任何字符串中连线的分隔符 代码如下: –去除字符串中连续的分隔符 declare @str nvarchar(200) declare @split nvarchar(200),@times int set @str=’中 国1 2 34 55 5 6 7 7′;–字符 set @split=...

    SQL 将以逗号分隔符的字符串转换为 table 列的函数

    将带分隔符的字符串 例如 '1,2,3,4,5,6,7,8,9,10' 转换成table 的列的函数

    sqlserver 字符串分割、包含、匹配

    1、按特定的分隔符号,确定数组长度 2、按指定符号分割字符串,返回“分割后指定索引的第几个元素”的值,象数组一样方便 3、检查一个元素是否在数组中,返回1或0 4、检查一个元素是否与数组中的相匹配,并返回相...

    sqlserver自定义函数

    ---在sql2005下创建测试数据表,如果是sql2005则用本段来判断数据表是否存在 ---if exists(select 1 from sys.tables where name='w01') ---drop table w01 ----开始创建测试数据库 GO create table w01(gs903 ...

    Log Explorer for SQL Server v4.22 含注册机

    他可以支持SQLServer7.0、SQLServer2000和SQLServer2005,提取标准数据库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下: l 日志文件浏览 l 数据库变更审查 l...

    sql2005全文检索.doc

    SQL Server 2005中提供配置文件,允许用户自定义自己语言、甚至与本行业、本企业的检索干扰词。  (4)词干分析器(Stemmer):通过断字符分割后,根据具体的语言和该语言的语法规程生成的特定词汇的变形。 这个即...

    SqlServer数据库课程设计-订单管理

    本资源中实现的数据库表有订单信息表、客户信息表、送货记录表,文档列出了所有插入数据的脚本。创建了计算费用、将单号集分隔得到单号数量的函数,模糊查询订单的存储过程,还有视图、索引及触发器。 具体要求如下...

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

    找了网上很多资料,都没有详细的做法有的还很复杂,自己写了个分割函数,通过直接查询就能分割多行,很方便。

    收集整理的SQL Server自定义函数

    收集整理的SQL Server自定义函数,原文地址:http://blog.csdn.net/maco_wang 1.去除字符串中的html标记及标记中的内容 2 2. 去除字符串中连续的分割符 4 3.求第一个字符串中第二个串的个数 6 4.综合模糊查询 6 5....

    SQL server中字符串逗号分隔函数分享

    继SQl -Function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数,需要的朋友可以参考下

    sql实验六数据库更新实验

    SQL Server提供了很多方法更新表中数据。以插入记录为例,可以使用INSERT语句、VALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC和DB-Library)中的函数进行数据插入等。本实验主要掌握...

    Log Explorer for SQL Server v4.22

    服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成Log Explore所提供的所有功能。...

    sqlserver 字符串分拆 语句

    代码如下:–&gt;Title:生成測試數據 –&gt;Author:wufeng4552 –&gt;Date :2009-09-21 09:...@split varchar(10) –数据分隔符 )returns table as return ( select substring(@s,number,charindex(@split,@s+@split,number)-numb

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    2或者sqlserver, mssqlserver数据库,不区分大小写,需java1.6及以上版本 3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者sybase, sybase数据库,不区分大小写(暂未测试) -url 数据库连接的url....

    SQL 将一列拆分成多列的三种方法

    数据表中有一列数据,如图所示: 现在需要将该列数据分成三列。 SQL 代码如下所示: 第一种 select max(case when F1%3=1 then F1 else 0 end) a, max(case when F1%3=2 then F1 else 0 end) b, max(case when F1%...

    SQL Sever中使用SQL语句实现把重复行数据合并为一行并用逗号分隔

    主要介绍了SQL Sever中使用SQL语句实现把重复行数据合并为一行并用逗号分隔,本文给出了两种实现方式,需要的朋友可以参考下

    sqlserver中根据字符分割字符串的最好的写法分享

    因数据库中保存的是以,号分隔的数据,需要在界面上以表格的方式显示出来。特想出以下方法

Global site tag (gtag.js) - Google Analytics