`
ihuashao
  • 浏览: 4863245 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

SQL 2000 拆分表

阅读更多

例子如下:

create table test(name varchar(20),num varchar(20))
insert test
select 'aa','5/6/9' union all
select 'bb','6/7/8'
go

--drop table test

select
a.name
[col2],col1=substring(a.num,b.number,charindex('/',a.num+'/',b.number)-b.number)
from
test a
join master..spt_values b
ON B.type='p' AND B.number BETWEEN 1 AND LEN(A.num)
where
substring('/'+a.num,b.number,1)='/'
order by col1



col2 col1
-------------------- --------------------
aa 5
aa
6
bb
6
bb
7
bb
8
aa
9

(所影响的行数为
6 行)

2005方法:

----------------------------------------------------------------
--
Author :fredrickhu(我是小F,向高手学习)
--
Date :2009-09-08 16:19:47
--
Version:
--
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
--
Nov 24 2008 13:01:59
--
Copyright (c) 1988-2005 Microsoft Corporation
--
Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
--
--
--------------------------------------------------------------
--
> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([name] varchar(2),[num] varchar(20))
insert [tb]
select 'aa','5/6/9' union all
select 'bb','6/7/8'
--------------开始查询--------------------------
SELECT A.name, B.num
FROM(
SELECT name, [num] = CONVERT(xml,' <root> <v>' + REPLACE([num], '/', ' </v> <v>') + ' </v> </root>') FROM tb
)A
OUTER APPLY(
SELECT num = N.v.value('.', 'varchar(100)') FROM A.[num].nodes('/root/v') N(v)
)B

----------------结果----------------------------
/*
name num
---- ----------------------------------------------------------------------------------------------------
aa 5
aa 6
aa 9
bb 6
bb 7
bb 8

(6 行受影响)

*/



分享到:
评论

相关推荐

    如何拆分Microsoft SQL Server表行数据

    Microsoft SQL Server 提供了多种方法来处理这种情况,尤其是在处理变长的数据或者需要将数据结构进行调整时。本教程将深入探讨如何在 SQL Server 中拆分表行数据。 首先,我们需要理解为什么需要拆分表行数据。...

    mycat 分库分表

    **mycat 分库分表详解** mycat 是一个开源的分布式数据库中间件,它能够将一个大型数据库逻辑上划分为多个小型数据库,实现数据的分布式存储,以解决单机数据库在高并发、大数据量场景下的性能瓶颈问题。mycat 在 ...

    数据库分库分表

    例如,`common-db-route`可能是一个通用的数据库路由模块,它负责根据业务逻辑和分库分表策略,将SQL语句路由到正确的数据库和表上。`db-route-demo`可能是这个路由机制的示例代码,展示了如何在实际项目中实现数据...

    分库分表,多数据源的切换

    例如,我们可以根据业务模块或者用户ID进行分库分表,然后在需要执行SQL的地方,Sharding-JDBC会自动将SQL解析并路由到正确的数据库和表。 通过SSMDemo这个示例项目,我们可以深入了解Sharding-JDBC的使用方法。该...

    springmvc分库分表实际例子

    它支持SQL解析、规则引擎、分布式算法,可与SpringMVC等框架良好集成。 4. **数据路由**:在分库分表中,数据路由是关键。ShardingSphere通过定义分片规则,根据业务逻辑(如用户ID、订单号等)将数据分配到相应的...

    Python与MySQL分表分库实战

    3. **SQL路由**:在Python应用中,需要编写代码来确定数据应存储或查询在哪个数据库或表中,这通常通过自定义路由类实现。 4. **数据迁移与同步**:在进行分表分库后,可能需要定期或在特定情况下进行数据迁移和...

    分库分表总结

    1. ShardingSphere:由Apache基金会维护的开源项目,提供分库分表、读写分离、数据加密等功能,支持MySQL、Oracle、SQL Server等多种数据库。 2. MyCAT:一个开源的分布式数据库中间件,支持大表分片、读写分离、...

    分表_利用python进行数据表分表_

    在数据分析和大数据处理中,将一个大表分成...这个过程不仅可以应用于Excel文件,也可以扩展到其他数据源,如SQL数据库或CSV文件。记住,分表策略应根据具体业务需求和数据规模进行调整,以确保最佳的性能和可维护性。

    分库分表代码实现和讲解

    3. **SQL语句构建**:在分库分表环境中,SQL语句需要进行改造。比如,INSERT、UPDATE和DELETE操作需要考虑到目标库和表的选择,可能需要拼接出多个操作语句。同时,JOIN操作变得复杂,可能需要在应用层进行数据聚合...

    Java+Springboot+mybatis+sharding jdbc 实现分库分表

    在现代企业级应用开发中,数据量的增长往往超出单个数据库的处理能力,这时就需要采用分库分表的技术来提高系统的扩展性和性能。本项目基于Java、SpringBoot、MyBatis以及ShardingJDBC实现了一个分库分表的解决方案...

    分库分表案例.rar

    3. **编写路由逻辑**:在应用程序中,处理SQL路由,确保数据正确地写入和读取到相应的库表。 4. **测试与优化**:对分库分表后的系统进行性能测试,根据测试结果进行优化调整。 本案例提供的源码可以帮助你深入理解...

    MySQL 分库分表的实现原理及演示案例

    这些中间件能够屏蔽分库分表的复杂性,提供统一的SQL接口给上层应用使用,同时处理好数据分布、路由、事务、容错等复杂问题。常见的中间件有ShardingSphere、MyCAT等。 在进行分库分表时,开发者和数据库管理员需要...

    PHP操作mysql数据库分表的方法_.docx

    当数据量达到一定规模,例如超过100万条记录,性能问题就会显现,此时就需要采取相应的优化策略,如分表或分区。本文主要讨论如何使用PHP操作MySQL数据库进行分表。 分表是一种常见的数据库扩展策略,它通过将一个...

    分库分表_基于当当jdbc-sharding

    jdbc-sharding通过在JDBC层进行拦截,动态地修改SQL语句,将操作路由到正确的数据库和表上,实现了透明化的分库分表。 首先,我们来看`jdbc.properties`文件,这是配置数据库连接的关键。在该文件中,我们需要定义...

    转:Mybatis分库分表扩展插件

    2. **动态SQL**:Mybatis本身支持动态SQL,插件会利用这一特性,在执行SQL语句时自动插入分片键和分片策略,使得SQL能在各个分片上正确执行。 3. **连接池管理**:为了高效地访问多个数据库,插件通常会集成连接池...

    sharding-sphere-demo 分表分库

    **分表分库技术概述** 在大数据量的业务场景中,单个数据库往往无法承受高并发、大数据量的处理压力,这时就需要引入分表分库技术。分表是指将一张大表按照一定的规则拆分成多个小表,分散到不同的数据库服务器上,...

    mysql大数据分库和分表 php解决方案

    在这种背景下,单一数据库往往难以承受巨大的数据处理压力,因此,采用分库分表技术成为了提高数据库性能的有效手段之一。本文主要探讨MySQL大数据分库和分表的PHP解决方案,并通过具体的案例分析来加深理解。 ####...

    集成sharding-jdbc实现分库分表.zip

    Sharding-JDBC作为阿里巴巴开源的一款轻量级数据库中间件,它提供了一种无侵入的分库分表解决方案,非常适合于单体项目的数据库扩展。在这个"集成sharding-jdbc实现分库分表.zip"的压缩包中,我们可以深入学习如何将...

    ShardingJDBC5.1.1按月分库分表、读写分离、自动创表完整demo

    《使用ShardingJDBC5.1.1实现按月分库分表、读写分离与自动创表的全面实战》 在现代企业级应用中,数据量的快速增长使得数据库的性能优化成为至关重要的环节。ShardingJDBC作为一款轻量级的Java框架,能够有效地...

    spring+mybatis+sharding-jdbc 1.3.1实现分库分表案例(可直接运行)

    5. **编写Mapper接口和XML**:按照MyBatis的常规方式,创建Mapper接口和对应的XML文件,但在SQL语句中要注意,由于表名和字段已经发生了变化,需要根据分片规则进行调整。 6. **测试和运行**:编写测试类,使用...

Global site tag (gtag.js) - Google Analytics