code

作者: C_G__ | 来源:发表于2019-11-05 16:47 被阅读0次
    
    CREATE TABLE [test](
        [date] VARCHAR2, 
        [result] VARCHAR2);
    
    -- 将纵向数据,横向统计
    select date, max(win) '胜', max(loss) '负' from ( SELECT distinct date, 
       CASE result WHEN '胜' THEN count(result) ELSE 0 END win,
       CASE result WHEN '负' THEN count(result) ELSE 0 END loss          
    FROM test group by date, result) group by date;
    
    源数据.png 结果.png

    将一个字段,拆成多个字段,再拼接成一个字段

    将1,2,3一个字段拆成3行,然后找到对应的title,再拼接成一个字段

    SELECT
    '192.168.1.1' , 
    SUBSTRING_INDEX( '192.168.1.1' , '.', 1 ) AS a,
    SUBSTRING_INDEX(SUBSTRING_INDEX( '192.168.1.1' , '.', 2 ),'.',-1) AS b, 
    SUBSTRING_INDEX(SUBSTRING_INDEX( '192.168.1.1' , '.', -2 ),'.',1) AS c,
    SUBSTRING_INDEX( '192.168.1.1' , '.', -1 ) AS d
    
    拆分字符串.png

    多行记录拼接成一行

    select group_concat(title) from role where idnum in (select substring_index(substring_index(mr.role_idnum,',',r.idnum+1),',',-1) as idnum from member_role mr join (select (@ROW :=@Row + 1) as idnum from role,(select @Row:=-1) zz) r on r.idnum < (length(mr.role_idnum) - length(replace(mr.role_idnum,',',''))+1));
    
    连接字符串.png

    相关文章

      网友评论

          本文标题:code

          本文链接:https://www.haomeiwen.com/subject/jykebctx.html