电话号码问题

时间:2013-07-17 18:56:57

标签: sql toad

我正在尝试编写报告,并且在此报告中有一个子查询,它将根据员工的network_Id提取电话号码。通常,网络ID的最后4位数字与员工电话号码的最后4位数字相同。我的问题是,如果一个人有两个电话号码符合第一个标准 - SUBSTR(PHONE_NUMBER, LENGTH(PHONE_NUMBER)-3, 4) = SUBSTR('DP2543',3, 4) ),那么错误地说单行子查询返回多行。你知道我怎么解决这个问题吗? 以下是phone_numbers的代码: -

Select (DECODE((SELECT distinct  PHONE_NUMBER FROM PER_PHONES 
  WHERE EMPLOYEE_ID = 26022
        AND SUBSTR(PHONE_NUMBER, LENGTH(PHONE_NUMBER)-3, 4) = SUBSTR('DP2543',3, 4) ), NULL, (SELECT DISTINCT PHONE_NUMBER FROM PER_PHONES 
  WHERE EMPLOYEE_ID =  26022  AND PHONE_TYPE = 'H1'),(SELECT DISTINCT PHONE_NUMBER FROM PER_PHONES 
  WHERE EMPLOYEE_ID =  26022
        AND rownum=1) )  ) from dual

1 个答案:

答案 0 :(得分:0)

如果您不关心自己选择哪一个,请在子查询中添加TOP 1

SELECT TOP 1 phone_number FROM [etc, etc...]

如果你关心,那么也要用ORDER BY

结束子查询
SELECT TOP 1 phone_number FROM [etc, etc...] ORDER BY phone_number