sql语句中查询某字段不含某字符的写法
1、创建测试表,
create table test_users(name varchar2(20), zw varchar2(20), zc varchar2(20));
2、插入测试数据
insert into test_users values('王XX','校长','');
insert into test_users values('陈XX','','院长');
insert into test_users values('张XX','','教授');
insert into test_users values('李XX','主任','');
insert into test_users values('吴XX','','处长');
insert into test_users values('段XX','','副教授');
commit;
3、查询表中全量数据,select t.*, rowid from test_users t;
4、编写语句,查询职称和职称中不含院长、校长、主任、处长的所有记录;
select t.* from test_users t where not regexp_like(zw||zc,'院长|校长|主任|处长');
FROM wenzhang
WHERE ((wenzhang.职务 is null and wenzhang.职称 is null) or (([wenzhang].[职称] & [wenzhang].[职务]) Not Like "*校长*" And ([wenzhang].[职称] & [wenzhang].[职务]) Not Like "*院长*" And ([wenzhang].[职称] & [wenzhang].[职务]) Not Like "*主任*" And ([wenzhang].[职称] & [wenzhang].[职务]) Not Like "*书记*" And ([wenzhang].[职称] & [wenzhang].[职务]) Not Like "*处长*" And ([wenzhang].[职称] & [wenzhang].[职务]) Not Like "*所长*"))
另外,看看是不是*前后加入了多余的空格,或者数据库用的中文编码跟查询环境用的中文编码方式不一致。
在我这里,用access,这样的查询没有问题的:
SELECT 姓名, 职务, 职称
FROM 普通老师 where 职务 not like "*院长*" and 职务 not like "*校长*";
where trim(a.column) not in ('院长','校长','主任',‘处长’)
where 职称 in( 院长 ,校长, 主任, 处长)