Search code examples
oraclewhere-clausein-operator

IN operator between two lists is not working in oracle


When I use without IN operator as below its working

SELECT * FROM range_name_t where (cty_code_iso='CN' and lang_code_iso='zh');

But when I use IN operator as below getting ORA-00920: invalid relational operator error

SELECT * FROM range_name_t where ( cty_code_iso, lang_code_iso ) IN ( 'CN','zh' );

    ORA-00920: invalid relational operator
    00920. 00000 -  "invalid relational operator"

How to make it working above 2nd query?


Solution

  • I don't have your tables, but I have Scott's EMP to demonstrate it:

    SQL> select *
      2  from emp
      3  where (deptno, job) in (select 10, 'CLERK' from dual);
    
         EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- -------- ---------- ---------- ----------
          7934 MILLER     CLERK           7782 23.01.82       1300                    10
    
    SQL>