前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BI-SQL丨截取字符串

BI-SQL丨截取字符串

原创
作者头像
PowerBI丨白茶
发布2022-05-20 21:06:49
3660
发布2022-05-20 21:06:49
举报
文章被收录于专栏:PowerBI

截取字符串

我们在做BI可视化之前,通常需要已经清洗干净的数据才能进行可视化分析。

随着电商的发展,有很多数据都是从网上渠道抓取过来的,这就导致原始数据有很多对于分析来说的无效数据,那么在SQL中这部分数据该如何进行处理呢?

函数介绍

SUBSTRING语法:

代码语言:txt
复制
SUBSTRING ( 表达式 , 开始位置 , 长度 )

返回结果为:返回字符、binary、text 或 image 表达式的一部分。

CHARINDEX语法:

代码语言:txt
复制
CHARINDEX ( 目标字符串 , 被查找字符串 [ , 开始查找位置 ] )

若省略第三参数,则默认从第一位开始查找。

返回结果:字符串开始出现的位置。

PATINDEX语法:

代码语言:txt
复制
PATINDEX ( '%字符串%' , 表达式)

第一参数可以使用通配符,第二参数通常为被查找的字符串。

返回结果:字符串开始出现的位置。

注:

CHARINDEX函数与PATINDEX函数从结果上来看,二者的作用类似,不过前者是完全匹配,后者支持模糊查询。

使用实例

案例数据:

在白茶本机的数据库中存在名为“CaseData”的数据库。

存在名为“案例数据”的表。从上图中我们可以看出,数据量比较少,而且在商品名称这一列中存在很多的无用字符。

例子1:

提取手机的所有信息,并将商品名称中无用的字符串去掉。

代码1:

代码语言:txt
复制
SELECT SUBSTRING([商品名称],CHARINDEX('手机',[商品名称]),2) AS Product,* 
FROM [案例数据]
WHERE [商品名称] LIKE N'%手机%'

结果如下:

解释:

这段代码中,我们首先通过CHARINDEX函数定位到手机出现的字符串位置,再通过SUBSTRING函数进行字符串截取。

代码2:

代码语言:txt
复制
SELECT SUBSTRING([商品名称],PATINDEX('%手机%',[商品名称]),2) AS Product,* 
FROM [案例数据]
WHERE [商品名称] LIKE N'%手机%'

结果如下:

例子2:

提取商品名称中所有商品,并将商品名称中无用的字符串去掉。

代码:

代码语言:txt
复制
SELECT SUBSTRING([商品名称],
                 CHARINDEX('[',[商品名称])+1,CHARINDEX(']',[商品名称])-CHARINDEX('[',[商品名称])-1
         )AS Product,* 
FROM [案例数据]

结果如下:

解释:

这段代码中,我们先判断的是“”符号首次出现的位置,来定位所有商品名称的首字符位置,再通过判断“”的位置来确认商品名称的末字符位置,二者相减即为需要截取的字符串长度。

这里是白茶,一个PowerBI的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档