zoukankan      html  css  js  c++  java
  • sql 将具有相同ID的多条记录组合成一条记录 Frida

    --创建测试环境 
    create   table   T1(   id   int   ,   value   varchar   (50)) 
    go 

    --追加测试数据 
    insert   T1(   id   ,value   )   values   (1, '数学 ') 
    insert   T1(   id   ,value   )   values   (1, '语文 ') 
    insert   T1(   id   ,value   )   values   (2, '化学 ') 
    insert   T1(   id   ,value   )   values   (3, '美术 ') 
    insert   T1(   id   ,value   )   values   (3, '音乐 ') 
    insert   T1(   id   ,value   )   values   (4, '物理 ') 
    insert   T1(   id   ,value   )   values   (4, '数学 ') 
    insert   T1(   id   ,value   )   values   (5, '体育 ') 
    go 

    --创建自定义函数 
    create   function   dbo.CX(@id   int)   
    returns   varchar(8000) 
    as 
    begin 
    declare   @s   varchar(8000) 
    set   @s   =   ' ' 
    select   @s   =   @s   +   ', '   +   value   from   T1   where   id   =   @id 
    set   @s   =   stuff(@s,1,1, ' ') 
    return   @s 
    end 
    go 

    select   *   from   t1 

    --调用 
    select   id,   dbo.cx(id)   as   value 
    from   t1 
    group   by   id 
    order   by   id 


    --删除临时表和自定义函数 
    drop   table   T1 
    drop   function   CX 

    /* 
    --测试结果 
    ID                 Value 
    ------------------------- 
    1   数学,语文 
    2   化学 
    3   美术,音乐 
    4   物理,数学 
    5   体育 
    */ 

    http://topic.csdn.net/t/20060124/18/4533802.html

    在查询分析器执行,会得到记录,但是,当组合的value很长时,显示出来的value只是一部分,直接在分析器里保存为csv文件的时候,只保存了部分的value值,开始想着解决变量8000的限制问题,没解决好。后来将查询的结果导入到另一个表就ok了。value的值保存的就是正常的,不解。mark下

  • 相关阅读:
    第二阶段个人总结八
    第二阶段个人总结七
    第二阶段个人总结六
    第二阶段个人总结五
    电梯演说模板练习
    对敏捷开发的理解
    团队的不同形式
    认识JQuery的三天--看视频得到的一些小知识点
    结对编码
    结对互评
  • 原文地址:https://www.cnblogs.com/luckjun/p/2075527.html
Copyright © 2011-2022 走看看