Sql 截取字符串问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql 截取字符串问题相关的知识,希望对你有一定的参考价值。
如:a-b-c-d 其中a,b,c,d的字符数不限,就是想通过‘-’来去字符,比如说去c 谢谢大家了 给出SQL语句
T表create table t
(c1 varchar2(20));
insert into t values(\'aaa-bbb-c-vvvv\');
commit;
select replace(c1,\'-c\',\'-\') from t;--用\'-\'替代\'-c\',\'c\'被除去,通过replace()很容易实现,即使再复杂点,substr()也很有用
------------------
aaa-bbb--vvv 参考技术A ?具体是什么意思 参考技术B select * from 表名 where 字段名 like '%-c-%' or 字段名 like 'c-%' or 字段名 like '%-c%'
sql语句,能够截取指定字段后面的一个字符串吗?
参考技术A sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。如test表中有如下数据,要求截图str字段中逗号后边的内容。
可用如下语句:
select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test;
结果截图:
charindex函数说明:
语法:
CHARINDEX
(
expression1
,
expression2
,
[
start_location
]
)
参数:
expression1
一个表达式,其中包含要寻找的字符的次序。expression1
是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2
属于字符串数据类型分类。
start_location
在
expression2
中搜索
expression1
时的起始字符位置。如果没有给定
start_location,而是一个负数或零,则将从
expression2
的起始位置开始搜索。
substring函数说明:
语法:
substring(
expression,
start,
length)
参数:
expression
字符串、二进制字符串、文本、图像、列或包含列的表达式
start
整数或可以隐式转换为
int
的表达式,指定子字符串的开始位置
length
整数或可以隐式转换为
int
的表达式,指定子字符串的长度
以上是关于Sql 截取字符串问题的主要内容,如果未能解决你的问题,请参考以下文章