zoukankan      html  css  js  c++  java
  • 【SQL精彩语句】分拆列值

     1 --分拆列值 
     2 --原著:邹建 
     3 --改编:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-12-16 广东深圳
     4 
     5 --有表tb, 如下: 
     6 --id value 
     7 ------------- ----------- 
     8 --1 aa,bb 
     9 --2 aaa,bbb,ccc 
    10 --欲按id,分拆value列, 分拆后结果如下: 
    11 --id value 
    12 ------------- -------- 
    13 --1 aa 
    14 --1 bb 
    15 --2 aaa 
    16 --2 bbb 
    17 --2 ccc 
    18 
    19 --1. 旧的解决方法(sql server 2000) 
    20 SELECT TOP 8000 id = IDENTITY(int11INTO # FROM syscolumns a, syscolumns b
    21 
    22 SELECT A.id, SUBSTRING(A.[values], B.id, CHARINDEX(',', A.[values] + ',', B.id) - B.id) 
    23 FROM tb A, # B 
    24 WHERE SUBSTRING(',' + A.[values], B.id, 1= ','
    25 
    26 DROP TABLE #
    27 
    28 --2. 新的解决方法(sql server 2005) 
    29 create table tb(id int,value varchar(30)) 
    30 insert into tb values(1,'aa,bb'
    31 insert into tb values(2,'aaa,bbb,ccc'
    32 go 
    33 SELECT A.id, B.value 
    34 FROM
    35 SELECT id, [value] = CONVERT(xml,' <root> <v>' + REPLACE([value]','' </v> <v>'+ ' </v> </root>'FROM tb 
    36 )A 
    37 OUTER APPLY( 
    38 SELECT value = N.v.value('.''varchar(100)'FROM A.[value].nodes('/root/v') N(v) 
    39 )B
    40 
    41 DROP TABLE tb
    42 
    43 /* 
    44 id value 
    45 ----------- ------------------------------ 
    46 1 aa 
    47 1 bb 
    48 2 aaa 
    49 2 bbb 
    50 2 ccc
    51 
    52 (5 行受影响)
    53 */
  • 相关阅读:
    weakself的另一种写法
    SDWebImage的使用说明
    关于AVPlayerItem对象的属性duration返回播放总时长的坑
    Xcode 问题
    循环引用问题
    使用Spring Animation的API创建动画
    iOS触摸事件处理
    OS开发中的事件处理(二)-事件传递,响应者链条
    python实现简单的百度云自动下载
    我眼中的K-近邻算法
  • 原文地址:https://www.cnblogs.com/temptation/p/2332348.html
Copyright © 2011-2022 走看看