zoukankan      html  css  js  c++  java
  • [SQL]SQL中把一个字段的数据分多行显示

    其实你完全可以写个自定义函数就OK了 。
    
    ===================================================================
    
    create function f_split
    (
       @c varchar(2000), --要分割的字符串 
       @split varchar(2)--分隔符号 
    ) 
    returns @t table(col varchar(20)) 
    as 
    begin 
    
    while(charindex(@split,@c)<>0) 
    begin 
    insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) 
    set @c = stuff(@c,1,charindex(@split,@c),'') 
    end 
    insert @t(col) values (@c) 
    return 
    end 
    go 
    ------------------------------------------------------------
    declare @str varchar(100)
    set @str = 'a.bb.ccc'
    
    select * from dbo.f_split(@str,'.')
    declare @str varchar(100)--定义变量@str
    set @str = 'a.bb.ccc' --@str初始值为a.bb.cc
    
    select substring(@str,number,charindex('.',@str+'.',number) - number) as col 
    
    --charindex查询.在@str的位置,substring截取字段@str
    
    from master..spt_values--master数据库里的spt_values表
    where [type] = 'p' and number between 1 and len(@str)--len(@str)为变量str的长度
        and substring('.'+@str,number,1) = '.'
    
    解释:master..spt_values表的type字段值为p的,对应,number字段的值是从1至255,
    
    则where条件中,会找到所有满足条件的number值,1行只有1个numbe值,故select的结果形式是:
    
    a
    
    bb
    
    ccc
  • 相关阅读:
    项目目标文档
    系统利益相关者描述案例
    软件需求模式 读书笔记二
    软件需求分析 读书笔记1
    专业实训题目需求分析
    2015年秋季个人阅读计划
    CodeVs 1615 数据备份
    HDU 3900 Unblock Me
    HDU 5898 odd-even number
    HDU 5877 Weak Pair
  • 原文地址:https://www.cnblogs.com/beeone/p/3621718.html
Copyright © 2011-2022 走看看