首页 > 数据库 >SQL server字符串截取——根据指定符号截取字符串/截取文本

SQL server字符串截取——根据指定符号截取字符串/截取文本

时间:2023-07-06 15:44:30浏览次数:45  
标签:符号 截取 server CHARINDEX DUAL 字符串 字段名

 ## - 对字符串进行简单的处理,调用单个函数

1. 情况1:取字符串前X位
用函数LEFT()

SELECT LEFT([字段名],6) FROM DUAL;
2. 情况2:取字符串后X位
用函数RIGHT()
SELECT RIGHT([字段名],6) FROM DUAL;
3. 情况3:取字符串中间位数,例如,取身份证号中的出生年月
用函数SUBSTRING()
SELECT SUBSTRING([字段名],7,6) FROM DUAL;/*从第7位开始,取6个字符*/

 

## -对字符串进行复杂的处理:调用多个函数

【函数介绍】
- CHARINDEX(expressionToFind , expressionToSearch):此函数会在第二个字符表达式中搜索一个字符表达式,这将返回第一个表达式(如果发现存在)的开始位置。需要注意的是:它返回的起始位置是从1开始的,而不是从0开始的。


可以使用函数CHARINDEX()确定指定符号的位置

SELECT CHARINDEX('-',[字段名]) FROM DUAL;/*返回第一个符号“-”所在的位置*/
SELECT CHARINDEX('-',[字段名],CHARINDEX('-',[字段名])+1) FROM DUAL;/*返回第二个符号“-”所在的位置:从第一个符号往后找*/

4. 情况4:按照指定符号截取文本,假设指定符号为“-”,截取字符串第一个符号前的所有内容。

SELECT SUBSTRING([字段名],1,CHARINDEX('-',[字段名])) FROM DUAL;/*从第1位开始,取到第一个符号“-”个为止,包含符号“-”*/
SELECT SUBSTRING([字段名],1,CHARINDEX('-',[字段名])-1) FROM DUAL;/*从第1位开始,取到第一个符号“-”个为止,不包含符号“-”*/

5. 情况5:按照指定符号截取文本,假设指定符号为“-”,截取字符串第二个符号前的所有内容。

SELECT SUBSTRING([字段名],1,CHARINDEX('-',[字段名],CHARINDEX('-',[字段名])+1)) FROM DUAL;/*从第1位开始,取到第二个符号“-”个为止,包含符号“-”*/
SELECT SUBSTRING([字段名],1,CHARINDEX('-',[字段名],CHARINDEX('-',[字段名])+1)-1) FROM DUAL;/*从第1位开始,取到第二个符号“-”个为止,不包含符号“-”*/

 

【函数介绍】
- REVERSE(string_expression ):返回字符串值的相反顺序。
6. 情况6:截取最后一个符号之后的字符串,指定符号为“-”。

REVERSE([字段名]) --反转字符串
CHARINDEX('-',REVERSE([字段名])) --反转字符串后第一个符号位置
SUBSTRING(REVERSE([字段名]),1,CHARINDEX('-',REVERSE([字段名]))) --截取反转字符串
REVERSE(SUBSTRING(REVERSE([字段名]),1,CHARINDEX('-',REVERSE([字段名])))) --复原字符串

标签:符号,截取,server,CHARINDEX,DUAL,字符串,字段名
From: https://www.cnblogs.com/stopthinking/p/17532322.html

相关文章

  • 如何实现Python找出字符串变量中所有大写的A.Z的具体操作步骤
    Python找出字符串变量中所有大写的A-Z作为一名经验丰富的开发者,你很荣幸地被指派教导一位刚入行的小白,告诉他如何在Python中找出字符串变量中的所有大写字母A-Z。下面是一个详细的步骤指南,帮助他完成这个任务。整体流程我们将整个过程分为以下几个步骤:步骤描述1提取......
  • PHP应用出现500 : The page cannot be displayed because an internal server error h
    问题描述PHP应用突然遇见了500 Thepagecannotbedisplayedbecauseaninternalservererrorhasoccurred.错误,但是如果访问一个静态HTML页面,就可以成功。只要是PHP页面,就是500。 问题解答登录AppService的Kudu站点,查看日志发现一句:  scriptProcessorcouldnotbefoun......
  • 【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed
    问题描述PHP应用突然遇见了500 Thepagecannotbedisplayedbecauseaninternalservererrorhasoccurred.错误,但是如果访问一个静态HTML页面,就可以成功。只要是PHP页面,就是500。 问题解答登录AppService的Kudu站点,查看日志发现一句:  scriptProcessorcouldnotb......
  • python字符串
    1.字符串函数name="jamesjacKSON"name.title()#字符串首字母大写,其余字母变小写name.upper()name.lower()2.在字符串中使用变量-f字符串(Python3.6引入的)first_name="ada"last_name="lovelace"full_name=f"{first_name}{last_name}"print(f......
  • Nacivate 连接远程mysql时 报错 Lost connection to MySQL server at ‘reading initi
    出现这种报错首先要检查第一:查看mysql的配置文件 /etc/my.cnf,根据服务器的不同以及安装的mysql版本有的是配置文件/etc/mysql/conf.d/50.server.confstep1:注释bind-address=127.0.0.1这句step2:找到[mysqld]部分的参数,在配置后面建立一个新行,添加skip-name-resolve......
  • MySQL常用字符串函数
    一、常用函数1.1ASCII(str)返回值为字符串str的最左字符的数值,即取得最左字符的ascii码。假如str为空字符串,则返回值为0。假如str为null,则返回值为null。mysql>selectascii('a');+--------------+|ascii('a')|+--------------+|97|+--------------+1rowin......
  • C++、Lua、Python字符串防止转义
    使用场景C++里测试路径需要转义,Windows复制路径里面的斜杠需要加斜杠,每次都需要操作比较麻烦,而且看着也不好看换行,代码里有时候硬编码一些文本、数据,依赖""的自动拼接和行末的斜杠,需要手动写\r\n换行C++Rawstringliteral以前用Lua,里有[[]],防止转义非常方便。后来了解到P......
  • webclient download file The remote server returned an error: (403) Forbidden,
    classWebpWebClient:WebClient{protectedoverrideWebRequestGetWebRequest(Uriaddress){HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(address);//req.UserAgent="[anywordsthatismoretha......
  • 深入理解 Serverless 计算的并发度
    作者|西流(阿里云技术专家)背景2019年Berkeley预测Serverless将取代Serverful计算[1],成为云计算的计算新范式。Serverless为应用程序开发提供了一种全新的系统架构,其凭借着弹性伸缩省事省心,按需付费更低成本、聚焦业务降低OPS这三大核心价值,将开发人员从繁重的手动资源......
  • jumpserver概念
    ......