如何SQL查询字段值包含于字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何SQL查询字段值包含于字符串相关的知识,希望对你有一定的参考价值。

参考技术A select * from table_a where charindex('a',id)>0 or charindex('b',id)>0
table_a 表中 id字段中含有"a"或者"b"的记录.
---------------------------------------------------
CHARINDEX
返回字符串中指定表达式的起始位置。
语法
CHARINDEX ( expression1 , expression2 [ , start_location ] )
参数
expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
返回类型
int

注释
如果 expression1 或 expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。
如果 expression1 或 expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在 expression1 和 expression2 都为 NULL 时返回 NULL 值。
如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0。

sql 当中 如何查询某个字段中的值的第几个字符中含有相应的值

比如 web_vch_prnexpend 这个表中的c_ply_no这个字段 中的值的格式为201010206062011000105 如何查询第8位的值为0 第9位的值为1 ?
请各位高手帮帮忙
为什么用不了substring 啊 注 我是在Oracle中

1、首先,我们在数据库中创建一个数据表fruit,包含id,name,loc三个字段。用DESC语句查询一下数据表是否创建成功。

2、接下来就是对数据表中填充数据。用INSERT INTO语句,对数据表进行填充数据。

3、按要求输入各字段的数据,分条输入。

5、接下来就是查询数据表中的所有字段的数据值。MySQL的查询语句是用SELECT。SELECT * FROM fruit;  *代表所有字段,fruit为需要查询字段所在的数据表。

参考技术A

可用substring函数来查询。

比如表中有如下数据:

现在要查询第二位字符为“s”的数据,可用如下语句:

select * from test where substring(STR,2,1)='s'

结果截图:

substring函数说明:

substring函数需要三个参数,其中第一个参数是要截取的字符串,第二个参数是要查询字符串的起始位,第三个参数为截取的字符长度。

参考技术B 给你一个最简单的方法:
select c_ply_no from web_vch_prnexpend where c_ply_no like '________09%'
注意_这个的个数你就明白了
参考技术C 使用substring(字段名,起始位置,长度)
即:select * from table where substring(c_ply_no,8,1)='0' and substring(c_ply_no,9,1)='1'
参考技术D substring(c_ply_no,8,1)='0'
substring(c_ply_no,9,1)='1'本回答被提问者采纳

以上是关于如何SQL查询字段值包含于字符串的主要内容,如果未能解决你的问题,请参考以下文章

sql 当中 如何查询某个字段中的值的第几个字符中含有相应的值

SQL中如何精确判断某字段含有某个值?

sql中如何按某字段值的首字母分组?

MySQL查询某个字段包含某个值--FIND_IN_SET

sql 查询字段中包含回车 如何查出含有回车的字段

SQL查询中,如何判断一个字符串字段的内容的长度