• [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
  • 相关阅读:
    RadAsm使用
    如何从外网访问内网
    装SQL server 2008问题解决
    820
    大三学生经验之谈
    ROM与RAM知识
    java mybatis学习一
    java Sprint boot 学习之一
    java读取配置到Hash表里
    数组乱序算法
  • 原文地址:https://www.cnblogs.com/beeone/p/3621718.html
Copyright © 2020-2023  润新知