`
shangjava
  • 浏览: 1190407 次
  • 性别: 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表行数据的简单方法。

    Mysql分表查询,哈希,范围,列表

    分表是一种数据库分割技术,用于将大表拆分成多个小表,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分表,例如基于范围、哈希或列表等。下面将详细介绍MySQL如何分表以及分表后如何进行数据查询...

    mysql分表程序改动方法

    mysql分表 程序如何改动 1.实现分表的原理如下 2.做mysql集群利用mysql cluster ,mysql proxy,mysql ...5.实现拆成二张表user1和user2,每张表25W条数据的方法代码。插入的数据方法代码 6.实现更新的方法代码

    MySQL数据库优化之分表分库操作实例详解

    其实,相对于垂直切分更进一步的是服务化改造,说得简单就是要把原来强耦合的系统拆分成多个弱耦合的服务,通过服务间的调用来满足业务需求看,因此表拆出来后要通过服务的形式暴露出去,而不是直接调用不同模块的表...

    MySQL分库分表总结讲解

    当出现这种情况时,我们可以考虑分库分表,即将单个数据库或表进行拆分,拆分成多个库和多个数据表,然后用户访问的时候,根据一定的算法与逻辑,让用户访问不同的库、不同的表,这样数据分散到多个数据表中,减少了...

    PostgreSQL分区表(partitioning)应用实例详解

    项目中有需求要垂直分表,即按照时间区间将数据拆分到n个表中,PostgreSQL提供了分区表的功能。分区表实际上是把逻辑上的一个大表分割成物理上的几小块,提供了很多好处,比如: 1、查询性能大幅提升 2、删除历史...

    MYSQL数据库数据拆分之分库分表总结

    数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。 数据存储演进思路二:单库多表 随着用户数量的增加,user表的...

    Mysql数据库性能优化三(分表、增量备份、还原)

    如果非要按照地域来分,即使把表拆的再小,查询还是要联合所有表来查,还不如不拆了。所以一个好的拆分依据是 最重要的。关键字:UNION 例: 订单表根据订单产生时间来分表(一年一张) 学生情况表

    MySQL分表和分区的具体实现方法

    垂直分表就是一个包含有很多列的表拆分成多个表,比如表A包含20个字段,现在拆分成表A1和A2,两个表各十个字段(具体如何拆根据业务来选择)。 优势:在高并发的情境下,可以减少表锁和行锁的次数。 劣势:在数据...

    阿里巴巴数据库分库分表的实践

    业务数据从原来的单库单表模式变成了数据被拆分到多个数据库,甚至多个表中,如果在数据访问层做一下功能的封装和管控,所有分库分表的逻辑和数据的跨库操作都交给应用的开发人员来实现,则对开发人员的要求变得相对...

    FreeSql::unicorn:.NET orm,Mysql orm,Postgresql orm,SqlServer orm,Oracle orm,Sqlite orm,Firebird orm,达梦orm,人大金仓orm,神通orm,翰高orm,华为GaussDB orm,MsAccess orm

    :unicorn: FreeSql FreeSql是功能强大的O / RM组件,支持... :page_with_curl: 支持读/写分离,拆分表/数据库,全局过滤器,乐观和悲观的储物柜。 :deciduous_tree: 支持MySql / SqlServer / PostgreSQL / Oracle /

    MySQL分区表

    相关sql都需要改动2、分区,所有的数据还在一个表中,但物理存储数据根据一定的规则存放在不同的文件中,文件也可以放到另外磁盘上优点:代码维护量小,基本不用改动,提高IO吞吐量缺点:表的并发程度没有增加3、...

    MySQL优化之分区表

     缺点:代码维护成本高,相关sql都需要改动  2、分区,所有的数据还在一个表中,但物理存储数据根据一定的规则存放在不同的文件中,文件也可以放到另外磁盘上  优点:代码维护量小,基本不用改动,提高IO吞吐量 ...

    数据库优化详解

    分表分库 (水平分割,垂直分割) 主从复制、读写分离 SQL 调优 对 MySQL 配置优化 (配置最大并发数 my.ini, 调整缓存大小) 定时清除不需要的数据,定时进行碎片整理 二、具体优化方案 (一)数据库设计—三大范式、...

    电商架构

    主库故障,从库自动切换数据高可靠,定期快照备份,增量备份数据自动拆分,一键无缝迁移扩容针对特殊业务需求,定制优化特殊的数据库版本原生MySQL协议,接入使用标准MySQL客户端数据根据路由规则分库分表,...

    Mysql数据表分区技术PARTITION浅析

    Mysql 的分区技术与水平分表有点类似, 但是它是在逻辑层进行的水平分表, 对于应用而言它还是一张表, 换句话说: 分区不是实际真正的对一张表进行拆分,分区之后表还是一个表,它是把存储文件进行拆分。 在 Mysql ...

    TSYS信息发布系统 v2.0 beta1版

    [升级]资源数据主表拆分,列表数据与内容大文本数据分表,以提升列表访问性能,减轻数据库压力。 [升级]频道管理,可以指定某频道个性化的目录生成规则、生成文件命名规则。 [修改]系统权限的管理,及权限在未来...

    Tsys信息发布系统 v2.0 beta1

    系统内核重新编写,提升系统灵活性及可扩展能力 [升级]资源数据主表拆分,列表数据与内容大文本数据分表,以提升列表访问性能,减轻数据库压力。 [升级]频道管理,可以指定某频道个性化的目录生成规则、生成...

    供水营业收费管理信息系统

    一、MS SQL SERVER 20000服务器安装: 11 二、服务器安装: 19 三、客户端安装: 21 第二节、系统初始化 23 1、运行WinScock服务器 23 运行《自来水综合管理信息系统服务器端》 24 3、运行《自来水综合管理信息系统...

Global site tag (gtag.js) - Google Analytics