繁体   English   中英

使用REGEXP_EXTRACT提取sql中的嵌套字段

[英]Extract nested fields in sql using REGEXP_EXTRACT

我正在使用Google Big Query并查询表中列的样本记录:

age=18;cntry=us;coid=9911718;csize=c;func=ops;gdr=f;grp=2099628;grp=85824;grp=1548357;grp=88799;grp=2059383;grp=1937629;ind=78;lang=en;mod=0;occ=511;optout=false;reg=21;s=0;seg=9001;seg=761;seg=541;seg=521;seg=1068;seg=557;seg=546;seg=514;seg=504;seg=183;seg=263;sub=0;tile=1;tile_p=1;title=ic;u=nql8uz5qrt8vcqh5tkcqq697

查询:

SELECT REGEXP_EXTRACT(col,r'age=(\d+)') AS age,
  REGEXP_EXTRACT(col,r'cntry=(\d+)') AS country,
  REGEXP_EXTRACT(col,r'gdr=(\d+)') AS gender from table x

结果: 18 null null

我只获得年龄值,但其他值为null。 任何帮助都会对此大有帮助。

cntrygdr值不是数字,它们由字母组成。

您可以使用\\w+匹配1个或多个“单词”字符,即字母,数字和下划线:

SELECT REGEXP_EXTRACT(col,r'age=(\d+)') AS age,
  REGEXP_EXTRACT(col,r'cntry=(\w+)') AS country,
  REGEXP_EXTRACT(col,r'gdr=(\w+)') AS gender from table x

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM