Snowflake中提取姓名字符串的名:已实现姓提取,求名的提取方法
名的提取实现方案
针对你遇到的两种姓名格式,对应提取名的逻辑如下:
- 若姓名是「姓, 名」格式(带逗号):名在逗号及后续空格之后,直接截取逗号后的内容并去除多余空格即可
- 若姓名是「名 姓」格式(空格分隔):名在第一个空格之前,截取开头到第一个空格的部分即可
对应的SQL代码可以这么写:
,CASE WHEN POSITION(',', B.NAME, 1) > 0 THEN TRIM(SUBSTRING(B.NAME, POSITION(',', B.NAME, 1) + 1)) ELSE SUBSTRING(B.NAME, 1, POSITION(' ', B.NAME, 1) - 1) END AS FIRST_NAME
补充说明
- 用
TRIM()是为了处理逗号后可能存在的多个空格或者首尾空格的情况 - 注意不同数据库的字符串函数参数可能有差异,比如有些数据库的
SUBSTRING语法是SUBSTRING(字符串, 起始位置, 长度),有些是SUBSTRING(字符串 FROM 起始位置 FOR 长度),如果你的数据库不支持当前写法,可以根据函数文档调整参数位置
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

