2016-10-06 1 views
-2

J'ai un problème avec ma requête. J'ai besoin de comparer plus de 50 valeurs si c'est entre 2 colonnes. Par exemple, j'ai deux colonnes varchar:PL/SQL comparer plus de valeurs utilisant entre

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

et j'ai des valeurs 1001, 2001, 3001, 4001. et j'ai besoin table avec des données d'entrée et de la colonne avec Y ou N si la valeur est entre col1 et col2:

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

I tryed à utiliser IN(), mais il est possible pour une utilisation entre. Pouvez-vous me donner une réponse. Thx

+2

Vous avez dit que vous rencontrez un problème avec votre requête. Eh bien ... éditez votre question et montrez votre requête. Ce n'est pas l'endroit pour que les gens écrivent votre requête pour vous. Vous devriez également montrer un échantillon de données (et le formater correctement). –

Répondre

0

Et voilà.

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 ;