获取字符串中某个指定的子串出现的开始位置(CHARINDEX用法)
CHARINDEX作用
写SQL语句我们经常需要判断一个字符串中是否包含另一个字符串,但是SQL SERVER中并没有像C#提供了Contains函数,不过SQL SERVER中提供了一个叫CHAEINDX的函数,顾名思义就是找到字符(char)的位置(index),既然能够知道所在的位置,当然就可以判断是否包含在其中了。
通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0。
基本语法如下:
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。
CHAEINDEX示例
1.简单用法
select charindex('test','this Test is Test')
查询结果: 
2.增加开始位置
select charindex('test','this Test is Test',7)
查询结果:
3.大小写敏感
select charindex('test','this Test is Test'COLLATE Latin1_General_CS_AS)
查询结果:
返回结果为0???,不要怀疑你的眼睛,因为大小写敏感,找不到test所以返回的就是0,默认情况下, SQL SERVER是大小不敏感的,所以我们简单示例中返回结果不为0,但是有些时候我们需要特意去区分大小写,因此专门SQL SERVE提供了特殊的关键字用于查询时区分大小写,其中CS为Case-Sensitve的缩写。
4.大小写不敏感
select charindex('Test','this Test is Test'COLLATE Latin1_General_CI_AS)
查询结果:
我们也可以这样说明是大小写不敏感,其中CI是Case-InSensitve的缩写,即大小写不敏感,当然我们没必要多此一举。
PATINDEX
和CHARINDEX类似,PATINDEX也可以用来判断一个字符串中是否包含另一个字符串,两种的差异在于,前者是全匹配,后者支持模糊匹配。
1.简单示例
select PATINDEX('%ter%','interesting data')
查询结果:
2.简单示例2
select PATINDEX('%t_ng%','interesting data')
查询结果:
PATINDEX也允许支持大小写敏感,做法和CHARINDEX一样,此处不再累述。
参考:
https://docs.microsoft.com/en-us/sql/t-sql/functions/charindex-transact-sql
https://docs.microsoft.com/en-us/sql/t-sql/functions/patindex-transact-sql
转自:https://www.cnblogs.com/qianxingdewoniu/p/6858580.html
获取字符串中某个指定的子串出现的开始位置(CHARINDEX用法)的更多相关文章
- C#,.net获取字符串中指定字符串的个数、所在位置与替换字符串
方法一: public static int indexOf (字符串/字符,int从第几位开始,int共查几位) string tests = "1absjjkcbfka2rsbcfak2 ...
- java基础知识回顾之---java String final类普通方法的应用之“两个字符串中最大相同的子串”
/* * 3,两个字符串中最大相同的子串. * "qwerabcdtyuiop" * "xcabcdvbn" * * 思路: * 1,既然取得是最大子串,先看 ...
- SqlServer 获取字符串中小写字母的sql语句
SQL字符串截取(SubString) 作用:返回第一个参数中从第二个参数指定的位置开始.第三个参数指定的长度的子字符串. 有时候我们会截取字符串中的一些特殊想要的东西,大小写字母.模号.汉字.数字等 ...
- iPhone开发--正则表达式获取字符串中的内容
缘起: 想获取字符串中指定的字符,考虑用正则表达式,遂写了如下的代码: NSString *htmlStr = @"oauth_token=1a1de4ed4fca40599c5e5cfe0 ...
- python,如何获取字符串中的子字符串,部分字符串
说明: 比如有一个字符串,python,如何就获取前3位,或者后2位.在此记录下. 操作过程: 1.通过分割符的方式,下标的方式,获取字符串中的子串 >>> text = 'pyth ...
- 获取字符串中img标签的url集合(转载)
/// <summary> /// 获取字符串中img的url集合 /// </summary> /// <param name="content"& ...
- 获取字符串中每个字符出现的次数(利用TreeMap)
案例:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)分析1:定义一个字符串(可以改进为键盘录入)2:定义一个 ...
- 正则表达式获取字符串中的img标签中的url链接
废话不多说直接看代码 JavaScript中的代码: var re = /src=\"([^\"]*?)\"/i; var arr = str.match(re); if ...
- String的两个API,判断指定字符串是否包含另一字符串,在字符串中删除指定字符串。
// 在字符串中删除指定字符串. String phoneNum="1795112345"; phoneNum = phoneNum.replace("17951&quo ...
随机推荐
- c++ 方框中绘制菜单代码
绘制静态菜单 getch与getchar 接收光标控制 一.绘制静态菜单 编写函数void mainmenu( void) 二.getch与getchar getch()的作用是从键盘接收一个字 ...
- 05- views视图层
1.配置index 主url from django.contrib import admin from django.urls import path, re_path, include urlpa ...
- [SCOI2010]传送带 三分法
[SCOI2010]传送带 LG传送门 三分法模板. 关于为什么可以三分,我选择感性理解,有人证明了,总之我是懒得证了. 假设路径是\(A \to E \to F \to D\),\(E\)和\(F\ ...
- CentOS7中使用阿里云镜像
之前因为下载Docker镜像很慢所以用了一家国内的镜像DaoCloud,今天要用的是阿里云的镜像库. 首先要开通了阿里云开发者帐号,地址 : https://dev.aliyun.com/search ...
- eclipse下载与安装并测试
下载地址:www.ecplise.org 下载完成后双击安装 安装完成之后,第一次运行eclipse会弹出Workspace Launcher对话框,要求设置工作空间存放项目文档. ...
- avascript小技巧
avascript小技巧 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture() ...
- 三剑客之sed&grep
第1章 练习题 1.1 第1题 取得/etc/hosts 文件的权限 如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644,要求使用命令取得644 这样的数字. ...
- Aria2 Linux 完整安装及使用教程
Aria2 嘛,主要是用来离线下载,功能强大,支持 http/https 直链.ftp.电驴.磁力链接等等,且可以跨平台使用,配合网页端操作,简直是一代下载神器. 安装 Debian/Ubuntu: ...
- css忽略某一层的存在:pointer-events:none
其实早知道这个属性,但是一直没有去研究过.今天正好在twitter看到这个词,就去研究了下,正好解决了目前遇到的一个小难题,所以分享下.嗯,其实这是个比较简单的CSS3属性. 在某个项目中,很多元素需 ...
- docker node项目 连接mongodb
在弄docker部署node项目的时候遇到了连接mongdb的问题,记录一下问题解决办法 一.Docker 安装 MongoDB 1.查找Docker Hub上的mongo镜像 [root@VM_49 ...