美文网首页
sql与excel、python比较(一)——字符串函数

sql与excel、python比较(一)——字符串函数

作者: 猴小白 | 来源:发表于2019-08-08 11:13 被阅读0次

    1、LENGTH(str):返回字符串的长度

    select length('abcd'),length('a'),length('一'),length('一二'),length(1),length(1.23);
    

    excel:LEN

    python:len

    2、CONCAT(s1,s2...,sn):将s1,s2...,sn连接成字符串

    select concat('a','b');
    

    excel:CONCATENATE或者&


    python:直接相加

    3、CONCAT_WS(sep,s1,s2...,sn):将s1,s2...,sn连接成字符串,并用sep字符间隔

    select concat_ws('-','a','b','c');
    

    excel:CONCATENATE或者&

    python:直接相加

    4、INSERT(str,x,y,instr):将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果

    select insert('abcd',2,1,'#&');
    

    excel:REPLACE或SUBSTITUTE


    python:replace

    5、REPLACE(str,str1,str2):在字符串str中用str2替换掉str1

    SELECT replace('abcdefg','bcd','#&');
    

    excel、python同上

    6、FIND_IN_SET(str,list):分析逗号分隔的list列表,如果发现str,返回str在list中的位置

    select find_in_set('b', 'a,b,c,d');
    

    excel:FIND和MATCH


    python:index

    7、POSITION(substr in str):返回子串substr在字符串str中第一次出现的位置

    select position('b' in 'abcd'),position('e' in 'abcd');
    

    8、LOCATE(substr,str,pos):返回substr字符串在str里pos(起始位置)出现的位置,没有返回0

    select locate('b','abcd'),locate('e','abcd');
    

    9、INSTR(str,substr):返回substr字符串在str出现的位置,没有返回0

    select instr('abcd','b'),instr('abcd','e');
    

    10、LCASE(str)或LOWER(str):返回将字符串str中所有字符改变为小写后的结果

    select LCASE('ABCD');
    

    excel:LOWER

    python:lower

    11、UCASE(str)或UPPER(str):返回将字符串str中所有字符改变为小写后的结果

    select UCASE('abcd');
    

    excel:UPPER

    python:upper

    12、LEFT(str,x):返回字符串str中最左边的x个字符

    select left('abcd',2);
    

    excel:LEFT

    python:切片

    13、RIGHT(str,x):返回字符串str中最右边的x个字符

    select right('abcd',2);
    

    excel:RIGHT

    python:切片

    14、LTRIM(str):从字符串str中切掉开头的空格

    select ltrim('   ABCD');
    

    15、RTRIM(str):去掉字符串str尾部的空格

    select rtrim('ABCD    ');
    

    16、TRIM(str):去掉字符串str前后的空格

    select trim('    ABCD    ');
    

    excel:TRIM

    python:strip

    17、LPAD(str1,x,str2):在str1前填充str2,填充后字符串总长度为x

    select lpad('abc',8,'#-');
    

    python:直接加

    18、RPAD(str1,x,str2):在str1前填充str2,填充后字符串总长度为x

    select rpad('abc',8,'#-');
    

    python:直接加

    19、REPEAT(str,x):将str重复x次

    select repeat('SQL',3);
    

    excel:REPT

    python:直接*

    20、REVERSE(str):颠倒字符串str

    select reverse('SQL');
    

    excel:需要VBA

    python:切片的方式

    21、STRCMP(s1,s2):比较字符串s1和s2,s1>s2返回1,s1=s2,返回0,s1<s2返回-1

    strcmp('abc', 'abc'),strcmp('abc', 'abb'),strcmp('abc', 'abd'),strcmp('abc', 'a');
    

    excel:EXACT

    python:is或==

    22、GROUP_CONCAT(col):返回由属于一组的列值连接组合而成的结果

    创建一张表

    create table a(
    people varchar(5) not null,
    word varchar(10) not null
    );
    
    insert into a(people,word)
    values('lily','I'),
          ('lily','love'),
          ('lily','python'),
          ('lucy','Java'),
          ('lucy','is'),
          ('lucy','better');
    
    select * from a;
    
    select people,group_concat(word,'-') from a
    group by people;
    

    python:聚合join

    创建一个表

    import pandas as pd
    a=pd.DataFrame([['lily','I'],['lily','love'],['lily','python'],['lucy','Java'],['lucy','is'],['lucy','better']],columns=['people','word'])
    a
    
    a.groupby(['people']).apply(lambda x:' '.join(x.word.tolist())).reset_index()
    

    相关文章

      网友评论

          本文标题:sql与excel、python比较(一)——字符串函数

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