截取如json格式的数组

需求:获取字符数组1,2,3的第2个元素

方法:通过自定义函数来实现

/*

获取字符串数组某个元素

*/

if exists (select 1 from sysobjects where id = object_id('Get_StrArrayStrOfIndex' ))

drop Function Get_StrArrayStrOfIndex

go

create function Get_StrArrayStrOfIndex

(

@str varchar(5000 ), -- 要分割的字符串

@split varchar(10 ), -- 分隔符号

@index int --取第几个元素

)

returns varchar (5000)

as

begin

declare @location int

declare @start int

declare @next int

declare @seed int

set @str =ltrim( rtrim(@str ))

set @start =1

set @next =1

set @seed =len( @split)

set @location =charindex( @split,@str )

while @location <>0 and @index> @next

begin

set @start =@location+ @seed

set @location =charindex( @split,@str ,@start)

set @next =@next+ 1

end

if @location =0

select @location =len (@str)+ 1

return substring (@str, @start,@location -@start)

end

GO

用例:

print dbo.Get_StrArrayStrOfIndex('1,2,3',',',2)

SQL取字符串中的数字OR字母/*功能:获取字符串中的字母*/

CREATE FUNCTION dbo.F_Get_STR (@S VARCHAR(100))

RETURNS VARCHAR(100)

AS

BEGIN

WHILE PATINDEX('%[^a-z]%',@S)>0

BEGIN

set @s=stuff(@s,patindex('%[^a-z]%',@s),1,'')

END

RETURN @S

END

GO

--测试

select dbo.F_Get_STR('测试ABC123ABC')

GO/*

功能:获取字符串中的数字

*/

create function dbo.F_Get_Number (@S varchar(100))

returns int

AS

begin

while PATINDEX('%[^0-9]%',@S)>0

begin

set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')

end

return cast(@S as int)

end

--测试

---select dbo.F_Get_Number('测试AB3C123AB5C')

GO

字符串函数截取(含mysql语法)

1、left(name,4)截取左边的4个字符

列:

SELECT LEFT(201809,4) 年

结果:2018

2、right(name,2)截取右边的2个字符

SELECT RIGHT(201809,2) 月份

结果:09

3、SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符

SELECT SUBSTRING('成都融资事业部',5,3)

结果:事业部

4、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符

SELECT SUBSTRING('成都融资事业部',3)

结果:融资事业部

5、SUBSTRING(name, -4) 截取name这个字段的第 4 个字符位置(倒数)开始取,直到结束

SELECT SUBSTRING('成都融资事业部',-4)

结果:资事业部

6、SUBSTRING(name, -4,2) 截取name这个字段的第 4 个字符位置(倒数)开始取,只截取之后的2个字符

SELECT SUBSTRING('成都融资事业部',-4,2)

结果:资事

注意:我们注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值。

7、substring_index(‘www.baidu.com’, ‘.’, 2) 截取第二个 ‘.’ 之前的所有字符

SELECT substring_index('www.baidu.com', '.', 2)

结果:www.baidu

8、substring_index(‘www.baidu.com’, ‘.’, -2) 截取第二个 ‘.’ (倒数)之后的所有字符

SELECT substring_index('www.baidu.com', '.', -2)

结果:baidu.com

9、SUBSTR(name, 1, CHAR_LENGTH(name)-3) 截取name字段,取除name字段后三位的所有字符

SELECT SUBSTR('成都融资事业部', 1, CHAR_LENGTH('成都融资事业部')-3)

结果:成都融资

mysql获取数组前两数据类型,sql获取数组指定元素、仅取数字、仅取字母以及字段截取大全、...相关推荐

  1. shell 获取字符串前两个字符串、获取字符串最后一个字符、去掉字符串最后一个字符、去掉末尾一个字符、去掉末尾两个字符

    1. 获取字符串前两个字符串 temp=`echo $RANDOM|md5sum|sed 's/../&:/g'|cut -c 1-17` echo $temp echo ${temp:0:2 ...

  2. JavaScript-创建数组的两种方法,数组的遍历,lenght获取数组的长度,在数组末尾追加元素

    数组概述 数组是一组相关数据的集合,其中的每一个值被称作元素,每个元素在数组中都有对应的位置(下标)就是元素的索引,通过下标就能很方便的获取对应下标的元素:当我们想要连续存放多个数据时就可以使用数组来 ...

  3. mysql查询每门功课成绩最好的前两名_用一个SQL查询语句得出每门功课成绩最好的前两名 - SQL Server论坛 - 51CTO技术论坛_中国领先的IT技术社区...

    有一个学生表,里面有  学号 功课编号 学生成绩三个字段. 用一个SQL查询语句得出每门功课成绩最好的前两名 学号  功课编号     学生成绩 1          1             99 ...

  4. mysql每学科前两名 having_mysql 分组查询前n条数据

    今天去面试,碰到一道面试题: 有一个学生成绩表,表中有 表id.学生名.学科.分数.学生id .查询每科学习最好的两名学生的信息: 建表sql: CREATE TABLE `stuscore` ( ` ...

  5. Js创建数组的两个方式和数组的索引方法

    创建数组的两个方式 <script>//1.利用数组字面量var arr=[1,2,3,4,5];console.log(arr);//2.new Arrayvar arr2=new Ar ...

  6. mysql调用tag标签_dedeCMS使用SQL代码调用指定栏目tag标签教程

    这篇文章主要为大家详细介绍了dedeCMS使用SQL代码调用指定栏目tag标签教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 我们在使用织梦dedecms建 ...

  7. oracle获取父级,如何通过sql获取oracle connect中的最终父id列

    1像这样创建表 CREATE TABLE oracle_connet_by_test ( item_id NUMBER PRIMARY KEY, parent_id NUMBER, item_desc ...

  8. calender获取日期前几月_java获取当前时间和前一天日期(实现代码)

    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request. ...

  9. php把这两个二维数组合并,两个二维数组的合并

    合并前的数组a: array (size=3) 0 => array (size=2) 'id' => string '113' (length=3) 'email' => stri ...

最新文章

  1. linux中断响应时间太慢_linux+arm系统学习与基础学习
  2. 使用C#进行系统编程
  3. Codeforces Round #633 B. Edge Weight Assignment 结论题 + dp
  4. java警惕自增的陷阱
  5. 作者:王海洋(1980-),男,中国科学院计算技术研究所网络数据科学与技术重点实验室、烟台中科网络技术研究所工程师。...
  6. Qt工作笔记-使用Qt Creator运行和调试运行结果不一样(参数没有初始化)
  7. C# WinForm 文件上传下载
  8. 删了的微信怎么恢复?
  9. 爆一个VS2015 Update1更新带来的编译BUG【已有解决方案】
  10. 苹果手机上网很慢_手机信号满格,但上网速度却很慢?来听听通信专家怎么说的...
  11. pycharm 远程连接Linux
  12. 微信公众号80端口映射详解(一)
  13. 【数据分析】面经(搬运)
  14. Android Tips 8
  15. 曙光服务器怎么修改启动项,简单易上手 戴尔T5500工作站BIOS全设置
  16. 笔记本ubuntu安装xen之殇
  17. windows10纯净版系统安装/重装详细教程
  18. TM1637数码管显示
  19. BO Session Kill
  20. python123课题的答案_python 练习 选课系统 项目

热门文章

  1. mysql 环形复制_MySQL 复制(五:拓扑结构) | 剑花烟雨江南
  2. [算法]求质数的算法之Miller-Rabin算法,C语言实现
  3. power bi 跨表计算_现代企业BI使命之打造数据文化——微软Build大会PowerBI解读
  4. 大话手游网页无法链接到服务器,大话西游手游网页版IE浏览器设置教程 IE浏览器问题解决指南...
  5. Linux服务器配置与管理
  6. 【项目精选】基于Java的超级玛丽游戏的设计与实现(源码+论文+视频)
  7. 计算机系统与手机系统,中国什么时候才有国产电脑系统和手机系统?
  8. 数据分析师成长路径-第四阶段
  9. 创建表的时候创建索引
  10. java hook jna鼠标_JNA介绍及使用JNA监听鼠标实现