我的查询有问题。如果它在2列之间,我需要比较超过50个值。例如,我有两个varchar列:
col1 col2
-----------
1000 1999
2000 2999
3000 3999
我有值1001, 2001, 3001, 4001
。
如果值在col1和col2之间,我需要带有Y
或N
的输入数据和列的表:
input Y/N
-------------
1001 Y
2001 Y
3001 Y
4001 N
我尝试使用IN(),但它之间不可能使用。 你能给我一个答案吗? THX
答案 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 ;