use EE
go
if object_id( N'tempdb..#t', N'U' ) is not null
drop table #t;
create table #t(
field1 varchar( 20 )
, field2 varchar( 20 )
, field3 varchar( 20 )
)
;
insert #t values( '', '1234567891', '2345678966' )
select *
from #t
;
select coalesce( nullif( t.field1, '' ), nullif( t.field2, '' ), nullif( t.field3, '' )) as newfield
from #t t
;
empty (but not NULL), they have underscores, or they have 10 zeros. If they contain any numbers above 0 and have 7 or 10 characters total, then that is what I want.
select
CASE
WHEN TRY_CAST(elms_leads.phone_voice AS INT) > 0 and len(elms_leads.phone_voice) in (7,10) and cast(elms_leads.phone_voice AS INT) > 0
THEN elms_leads.phone_voice
WHEN TRY_CAST(elms_leads.phone_work AS INT) > 0 and len(elms_leads.phone_work) in (7,10) and cast(elms_leads.phone_work AS INT) > 0
THEN elms_leads.phone_work
WHEN TRY_CAST(elms_leads.phone_cell AS INT) > 0 and len(elms_leads.phone_cell) in (7,10) and cast(elms_leads.phone_cell AS INT) > 0
THEN elms_leads.phone_cell
ELSE ''
END AS phone1
from elms_leads
select
CASE
WHEN TRY_CAST(elms_leads.phone_voice AS INT) > 0 and len(elms_leads.phone_voice) in (7,10) and cast(elms_leads.phone_voice AS INT) > 0
THEN elms_leads.phone_voice
WHEN TRY_CAST(elms_leads.phone_work AS INT) > 0 and len(elms_leads.phone_work) in (7,10) and cast(elms_leads.phone_work AS INT) > 0
THEN elms_leads.phone_work
WHEN TRY_CAST(elms_leads.phone_cell AS INT) > 0 and len(elms_leads.phone_cell) in (7,10) and cast(elms_leads.phone_cell AS INT) > 0
THEN elms_leads.phone_cell
ELSE ''
END AS phone1
from (
--your complete query goes here
select phone_voice, phone_work, phone_cell from elms_leads
) elms_leads
SELECT
elms_users.user_last_name AS salesperson,
elms_users_1.user_last_name AS interior_designer,
elms_leads.last_name,
elms_leads.first_name,
elms_leads.address_1,
elms_leads.city,
elms_leads.state,
elms_leads.zip_code,
elms_jobs_type.job_name AS job_type,
LTRIM(RTRIM(elms_estimates.est_no)) AS est_no,
elms_leads.phone_voice,
elms_leads.phone_work,
elms_leads.phone_cell,
CASE
WHEN TRY_CAST(elms_leads.phone_voice AS INT) > 0 and len(elms_leads.phone_voice) in (7,10) and cast(elms_leads.phone_voice AS INT) > 0
THEN elms_leads.phone_voice
WHEN TRY_CAST(elms_leads.phone_work AS INT) > 0 and len(elms_leads.phone_work) in (7,10) and cast(elms_leads.phone_work AS INT) > 0
THEN elms_leads.phone_work
WHEN TRY_CAST(elms_leads.phone_cell AS INT) > 0 and len(elms_leads.phone_cell) in (7,10) and cast(elms_leads.phone_cell AS INT) > 0
THEN elms_leads.phone_cell
ELSE ''
END AS valid_phone,
elms_leads.spouse_first_name,
elms_leads.spouse_last_name,
elms_leads.spouse_phone_cell,
elms_leads.spouse_phone_work,
elms_leads.spouse_phone_home,
elms_id_jobs.job_cost,
elms_id_jobs.date_retained,
elms_id_jobs.date_sold,
elms_id_jobs.date_start,
elms_id_jobs.date_finish,
elms_id_jobs.required_items,
elms_id_jobs.next_meeting,
elms_id_jobs.cabinet_ordered_date,
elms_id_jobs.cabinet_shipped_date,
elms_id_jobs.presentation_date,
elms_estimates.project_manager,
elms_id_jobs.checklist,
elms_leads.email,
elms_estimates.est_no AS job_number,
elms_id_status.status_name AS ID_status
FROM
elms_id_status INNER JOIN
elms_leads INNER JOIN
elms_estimates ON elms_leads.id = elms_estimates.lead_id INNER JOIN
elms_id_jobs ON elms_estimates.id = elms_id_jobs.estimate_id ON elms_id_status.id = elms_id_jobs.status LEFT OUTER JOIN
elms_users AS elms_users_1 ON elms_estimates.interior_designer = elms_users_1.id LEFT OUTER JOIN
elms_users ON elms_estimates.sales_person = elms_users.id LEFT OUTER JOIN
elms_jobs_type ON elms_estimates.job_id = elms_jobs_type.id
WHERE
(elms_estimates.status = 2)