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

2019-08-08  本文已影响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()
上一篇下一篇

猜你喜欢

热点阅读