在sql语句中怎么判断一个字段是不是包含在另一个字符串中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql语句中怎么判断一个字段是不是包含在另一个字符串中相关的知识,希望对你有一定的参考价值。

sql语句判断一个字段是否包含在另一个字符串中的方法

一、语句中使用到的函数有

1、CHARINDEX:函数返回字符或者字符串在另一个字符串中的起始位置。

语法:CHARINDEX ( expression1 , expression2 [ , start_location ] ) 

expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。 

CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么返回0

2、rtrim:函数去除字符串右边的空格符。

二、例子中的表格为:tt,结构数据如下

下面语句检索test_column字段的值包含在字符串 ‘aabb’中的记录

select * from tt where CHARINDEX(rtrim(test_column),\'aabb\') > 0 ;

1、rtrim(test_column),部分数据库,在对字符型字段的值做操作的时候,会在字符串的右边补足空格符。

例如:字段类型为char(8),字段的值为‘aa’,那么会使用‘aa        ’来操作,这样会影响语句的结果。所以使用rtrim函数去除字符串右边的空格符。

2、CHARINDEX(rtrim(test_column),\'aabb\'),在字符串‘aabb’中查找是否包含rtrim(test_column)返回的字符串,找到返回字符串起始位置,反之返回0.所以包含则返回大于0的值。

3、语句执行结果:

参考技术A

思路是,读取B.name字符串后进行字符串的的分割  name.,然后最后执行模糊查询A表,可以这样


WHERE     (A.nameLIKE '%查%') AND (A.nameLIKE '%体%') 


只能说完全用sql语句实现,有点难吧! 


string name = "查体";


char[] NameChar = name.ToArray();


string SqlStr = "select * from A ";


for (int i = 0; i < NameChar.Count(); i++)

if (i == 0)

SqlStr += "where A.name LIKE'%" + NameChar[0] + "%'";

else

SqlStr += " and A.name LIKE'%" + NameChar[i] + "%'";



可以告诉你,没有关联查一个表还行,两个表都来不太可能。   

参考技术B instr(a表.字段1,b表.字段2)>0
加这个条件就可以判断a表的字段1 是否包含 b表的字段2 了!

sql判断字段是不是为空

1、创建测试表,

create table test_null(id varchar2(20),value varchar2(20));

2、插入测试数据;

insert into test_null values(1,'123');

insert into test_null values(2,'abc');

insert into test_null values(3,'');

insert into test_null values(4,'456');

3、查询表中全量数据;select t.*, rowid from test_null t;

4、编写语句,查询表中value为空的记录;

   select t.*, rowid from test_null t where value is null;

参考技术A 啥意思?

sqlserver有isnull()函数的
select * from 表 where isnull(字段,‘’)=‘’就是空
select * from 表 where isnull(字段,‘’)<>‘’就不为空本回答被提问者和网友采纳
参考技术B sql server 中使用 is null 或 is not null 来处理列的空值。

语法为:
列名 is null (字段为空返回true ,不为空返回 false)
列名 is not null (字段为空返回false,不为空返回 true)

例:
select case when a is null then 1 else 0 end from aaa

语法大意:如果a列 为空显示1,不为空显示0
参考技术C ISNULL(字段,'')=''即为空
len(ISNULL(字段,''))>0不为空
select * from 表 where 字段 is null "找出字段为空的数据"
select * from 表 where 字段 is not null "找出字段不为空的数据"
参考技术D 查数据表中,tb_name字段为null的语句
select * from tablename where tb_name is null

以上是关于在sql语句中怎么判断一个字段是不是包含在另一个字符串中的主要内容,如果未能解决你的问题,请参考以下文章

sql server的sql语句怎么判断一个字段是不是为空

php 判断一个字段是不是为空,为空的话执行一段sql语句

急急急,Sql查询一个字段是不是存在某一个值,怎么写查询语句?

C语言中怎么判断一个字符串包含在另一个字符串里面

C语言中怎么判断一个字符串包含在另一个字符串里面?

sql 表中一个字段含有大量的中文字符,怎么替换掉