加入收藏 | 设为首页
爱江湖网站LOGO
您当前的位置:首页 > 学习笔记 > WEB后端

SQL server字符串截取 - 根据指定符号截取字符串

发布时间:2024-10-28  SQLServer

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

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([字段名])))) --复原字符串
来顶一下
返回首页
返回首页
上一篇
ASP中:什么函数能从第几项开始截取几个字符串
下一篇
asp批量生成html静态页面方法
发表评论 共有条评论
验证码: 匿名发表
推荐资讯
元宇宙之侠剑江湖游
元宇宙之侠剑江湖游
什么是江湖 - 江湖遐想
什么是江湖 - 江湖遐
如果每一只江湖怪物,都爱着一个玩家
如果每一只江湖怪物,都
解除卡、陷害卡、捣乱卡、吸血虫满大厅砸
解除卡、陷害卡、捣乱
相关文章
    无相关信息
栏目更新
栏目热门