用于混合大小写过滤器的SQL

时间:2017-10-11 20:10:28

标签: sql oracle-sqldeveloper

我只是想知道如何搜索任何案例组合。例如,我想找到所有姓氏为“davies'”的员工,但我希望能够找到任何案例,例如“戴维斯”和“戴维斯”等。或者' DAVies'。这就是我尝试过的。

SELECT LAST_NAME

FROM EMPLOYEES

WHERE DEPARTMENT_ID = (SELECT DEPARTMENT_ID

FROM EMPLOYEES

WHERE LAST_NAME = '[Dd][Aa][Vv][Ii][Ee][Ss]');

2 个答案:

答案 0 :(得分:1)

我会使用UPPERLOWER函数和IN

SELECT LAST_NAME
FROM EMPLOYEES
WHERE DEPARTMENT_ID IN (
   SELECT DEPARTMENT_ID
   FROM EMPLOYEES
   WHERE UPPER(LAST_NAME) = 'DAVIES'
);

不幸的是,它使索引使用无效。

答案 1 :(得分:1)

使用 UPPER

SELECT *
   FROM EMPLOYEES
   WHERE UPPER(LAST_NAME) = 'DAVIES'