PL / SQL使用两者之间比较更多值

时间:2016-10-06 15:10:18

标签: plsql between

我的查询有问题。如果它在2列之间,我需要比较超过50个值。例如,我有两个varchar列:

col1   col2
-----------
1000   1999
2000   2999
3000   3999

我有值1001, 2001, 3001, 4001。 如果值在col1和col2之间,我需要带有YN的输入数据和列的表:

input  Y/N
-------------
1001   Y
2001   Y
3001   Y
4001   N

我尝试使用IN(),但它之间不可能使用。 你能给我一个答案吗? THX

1 个答案:

答案 0 :(得分:0)

你走了。

with 
   /**You main table data**/
    tabl (col1, col2) as( select 1000 ,1999 from dual
                           UNION ALL
                           select 2000 ,2999 from dual
                           UNION ALL
                           select 3000 ,3999 from dual
                          ),
    /**Your Input tale data**/
    tabl_inp(val)as ( select 1001 from dual 
                      UNION ALL
                      select 2001 from dual
                      UNION ALL
                      select 3001 from dual
                      UNION ALL
                      select 4001 from dual
            )                                                       
select  val  INPUT,
        case 
         when (val >= col1 and val <= col2) then
           'Y'
         ELSE
           'N'
        END "Y/N"
from tabl 
right join tabl_inp
ON val >= col1 and val <= col2 ;