在oracle中,如何在搜索字符串时消除区分大小写

Rav*_*dra 3 sql database oracle plsql

3.如果表中提到的角色是\xe2\x80\x98MANAGER\xe2\x80\x99或\xe2\x80\x98Manager\xe2\x80\x99怎么办?您不能编写三个不同的查询来获取结果。检查指定角色管理器的所有可能值的选项是什么?

\n
--selecting employee who is not a  manager \ncreate table employee(\nemployee_id number(10) NOT NULL,\nemployee_name varchar2(50),\nemployee_sal number(10),\nemployee_role varchar2(50),\nemployee_age number(10),\nCONSTRAINT employee_pk PRIMARY KEY(employee_id)\n);\n\ninsert into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)values(12,'ravi',5676,'dse',23);\ninsert into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)values(13,'sai',85676,'tester',21);\ninsert  into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)values(15,'chandu',4676,'developer',28);\ninsert  into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)values(16,'raju',7676,'tech lead',22);\ninsert  into employee(employee_id, employee_name, employee_sal, employee_role, employee_age)values(17,'teja',9676,'manager',29);\n   \n  select * from employee\n  where employee_role !='manager';\n
Run Code Online (Sandbox Code Playgroud)\n

小智 6

快速而肮脏的方法是与转换为大写或小写的列进行比较:

SELECT * FROM employee WHERE UPPER(employee_role) != 'MANAGER';
Run Code Online (Sandbox Code Playgroud)

根据您的语言和使用情况,更正确的方法是将 COLLATE 运算符添加到搜索中。有关 COLLATE 运算符的更多详细信息,您可以从本文开始: https: //blogs.oracle.com/sql/post/how-to-do-case-insensitive-and-accent-insensitive-search-in-oracle -数据库