`

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) = ','
*/
 
分享到:
评论

相关推荐

    SQLServer逗号分隔的字符串转换成表

    SQL Server 逗号分隔的字符串转换成表 SQL Server 逗号分隔的字符串转换成表是指将一个逗号分隔的字符串转换成一个表结构,以便于进行查询、更新或者删除等操作。下面是将逗号分隔的字符串转换成表的步骤: 1. ...

    SQL Server 将某一列的值拼接成字符串.docx

    在SQL Server中,将某一列的值拼接成字符串是一个常见的需求,这通常涉及到数据的格式化输出,比如创建报告或者导出数据。这个过程可以通过几种不同的方法来实现,其中包括使用FOR XML PATH子句和CONCAT函数。我们将...

    sql server 2005用sql语句导入txt中的数据小结

    在SQL Server 2005中,从TXT文件导入数据是一项常见的任务,特别是在处理大量文本数据时。本文将总结两种主要方法,通过SQL语句和存储过程来完成这个任务。 首先,我们来看第一种方法,直接使用BULK INSERT语句。...

    sql server 2005 数据导出教程

    ### SQL Server 2005 数据导出教程详解 在IT行业中,数据处理与管理是一项至关重要的技能,尤其是在企业级数据库应用中。SQL Server作为微软的一款高性能关系型数据库管理系统,被广泛应用于各种业务场景中。其中,...

    Microsoft SQL Server 2005 Express Edition SP3

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

    Sqlserver大数据量插入速度慢或丢失数据的解决方法

    ### Sqlserver大数据量插入速度慢或丢失数据的解决方法 #### 概述 在处理大量数据插入SQL Server数据库的过程中,可能会遇到插入速度慢或者数据丢失的问题。这种情况通常出现在需要批量插入数千甚至上万条记录的...

    从SQLServer迁移大批量数据到Oracle

    1. **选择数据源**: 在 SQL Server 中选择数据源为 Microsoft OLE DB Provider for SQL Server。 2. **指定服务器**: 指定本地服务器,数据库名为 icd_db_bill,并使用 SQL Server 认证方式登录。 3. **选择目标**: ...

    sql server 2008 将一列值转换成一个字符串

    在SQL Server 2008中,有时我们需要将表中的某一列数据合并成一个单独的字符串,例如将员工编号列合并成一个逗号分隔的字符串。这种操作在生成报表、邮件合并等功能中非常有用。本文的目标是通过一个具体的例子来...

    SQL Server 2005技术数据库邮件使用方式

    在SQL Server 2005中,数据库邮件(Database Mail)是一项重要的服务,允许用户直接从数据库发送电子邮件,极大地提高了数据库管理员和开发人员的工作效率。下面我们将深入探讨SQL Server 2005数据库邮件的配置和...

    sqlserver使用UNPIVOT函数列转行

    在 SQL Server 中,`UNPIVOT` 函数是一个非常实用的功能,主要用于将数据表中的列转换为行,即“列转行”操作。这种操作在数据分析过程中经常用到,尤其是在需要对多列数据进行统一处理的情况下。通过使用 `UNPIVOT`...

    SqlServer数据导入工具

    【SqlServer数据导入工具】是一种高效实用的软件,旨在帮助用户便捷地将各种格式的数据文件,如Access、Excel、DBF、TXT、CSV以及XML文件,批量导入到Sql Server数据库中。这一工具极大地简化了数据迁移过程,对于...

    sqlserver2005移植到oracle数据库移植报告

    标题所述的"sqlserver2005移植到oracle数据库移植报告"主要涉及的是将SQL Server 2005中的数据迁移到Oracle数据库的过程和技术。在描述中提到了两种数据库之间的数据导入方法,以及针对Oracle运行环境的需求。接下来...

    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 SERVER 数据导出工具

    SQL Server 数据导出工具是数据库管理员和开发人员在日常工作中常用的一种实用程序,它能够帮助用户将SQL Server数据库中的数据高效、便捷地导出到不同的格式或文件中。这种工具通常具备多种功能,如生成SQL脚本、...

    SqlServer GroupConcat

    `SqlServer GroupConcat`的CLR实现是为了解决SQL Server中缺乏类似MySQL `GROUP_CONCAT`功能的问题。CLR(Common Language Runtime)是.NET框架的一部分,允许开发者使用各种编程语言(如C#、VB.NET等)编写存储过程...

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

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

    怎么重命名sqlserver表中字段名

    ### 如何在SQL Server中重命名表中的字段 在数据库管理与维护的过程中,经常会遇到需要对表中的字段进行重命名的情况。特别是在SQL Server这样的大型关系型数据库管理系统中,正确掌握如何进行字段重命名是非常重要...

    SqlServer列转行的另一种方式

    ### SqlServer列转行的另一种方式 在数据库处理过程中,经常需要将数据按照特定的方式进行转换,以便更好地满足业务需求或提高查询效率。常见的转换包括列转行、行转列等操作。通常我们使用`PIVOT`和`UNPIVOT`来...

    SQL Server中日期问题的解决

    ### SQL Server中日期问题的解决 在Microsoft SQL Server(以下简称SQL Server)中处理日期和时间时,经常会遇到一些挑战。由于SQL Server默认只提供`DATETIME`数据类型来存储日期和时间信息,这使得在某些情况下仅...

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

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

Global site tag (gtag.js) - Google Analytics