我是新手,Oracle
并且对MS SQL
. 我正在尝试根据user_id
from获取电话号码Table2
,这是业务逻辑:
案例1:如果找到一个匹配项,
Table1
则从中获取相应的免费电话号码Table2
案例2:如果未找到匹配项,
Table1
则从以下获取默认免费电话号码Table2
案例3:如果找到多个匹配项,
Table1
则所有这些都从order by or中assigned_care_levels
获取Care
值,然后选择第一行电话号码。Table2
asc
desc
我编写了以下查询,当我单独运行它时效果很好。但是,当我使用 if else 语句结合它时,我收到以下错误ERROR: ORA-00907: missing right parenthesis
。这是我的代码:
if ((select count(distinct care_level) from Table1 where user_id = '100') > 0)
select phone from Table2 where care_level in (select distinct care_level from Table1 where user_id = '100')
and rownum = 1
order by care_level asc
else if((select count(distinct care_level) from Table1 where user_id = '100') = 0)
select phone from Table2 where care_level = 'default'