2015-07-30 1 views
0

Этот запрос преобразует bc_int_phone в числовые символы, исключая - и '' символов. Скажем, полученные цифры не должны иметь одинакового стартового числа. Скажем, я ищу 123-456-7890, но это может быть формы 999 123-456-7890 .. Как включить like %(bc_phone_number)% в этот код, чтобы включить этот случай?SQL переменная длина числовая строка

select 
    ca.callingpartynumber, ca.originalcalledpartynumber, ca.duration, 
    ca.duration_text, ca.finalcalledpartynumber, 
    case 
     when calledpartylastname is not null 
     then ca.calledpartylastname + ',' + calledpartyfirstname 
     else p1.name 
    end as calledpartyname, 
    p1.location, p1.dept, p1.title, 
    case 
     when callingpartylastname is not null 
     then ca.callingpartylastname + ',' + callingpartyfirstname 
     else p3.name 
    end as callingpartyname 
from 
    calldata.calldetailreport ca 
join 
    ps_bc_peoplesource_base p1 on ca.originalcalledpartynumber like replace(p1.bc_int_phone, '-', '') 
left outer join 
    ps_bc_peoplesource_base p3 on ca.callingpartynumber like replace(p3.bc_int_phone, '-', '') 
where 
    callingpartynumber in (select replace(bc_int_phone, '-', '') internal_modified 
          from ps_bc_peoplesource_base 
          where bc_lan_id like 'f7c') 
+2

Какие РСУБД это? Часто имеет значение, используете ли вы MySQL, PostgreSQL, Oracle, SQL Server или IBM DB2, или что-то еще. Добавьте соответствующий тег на свой вопрос! –

ответ

0

попробовать like ca.originalcalledpartynumber like '%'||replace(p1.bc_int_phone, '-', '')||'%'

|| является оператором конкатенации строк в оракула. USe +, если вы используете SQL Server.

+0

Большое спасибо за помощь! действительно оцените! –