2016-11-18 3 views
0

Ich habe kommen Aufzeichnungen wie wie im BildNicht Nullwert benötigt in allen Spalte in SQL Server

Abfrage nicht funktioniert:

SELECT 
    'Business_Details' AS 'Business Phone','Business Email' 
FROM 
    (SELECT 
     TELCOM_NAME, TELCOM_ADDRESS 
    FROM 
     [mi_s_data].[dbo].[TEMP_MOS_CONTACT] 
    ) AS SourceTable 
PIVOT 
(
MAX(TELCOM_ADDRESS) 
FOR TELCOM_NAME IN ('Business_Phone','Business_Email') 
) AS PivotTable; 

Ich brauche eine SQL Server-Abfrage, die Ausgabe geben kann, wie gezeigt in diesem Bild: enter image description here

+1

Ihre Beispieldaten hat vier Spalten aber drei Spaltennamen. –

Antwort

0

So etwas vielleicht?

Select ... 
case when alias1.TELCOM_ADDRESS is null 
    then (select alias2.TELCOM_ADDRESS 
      from [mi_s_data].[dbo].[TEMP_MOS_CONTACT]) alias2 
      where alias1.Contact_id=alias2.Contact_id 
      and alias2.TELCOM_ADDRESS is not null) 
     ) 
    else alias1.TELCOM_ADDRESS 
    end as TELCOM_ADDRESS 
from [mi_s_data].[dbo].[TEMP_MOS_CONTACT]) alias1 
+0

Willkommen bei SO. Bitte versuchen Sie herauszufinden, wie Sie eine Antwort richtig formatieren können (http://stackoverflow.com/help/formatting). – gus27

0

würde ich vorschlagen, nur bedingte Aggregation mit:

select contact_id, 
     max(case when telcom_name = 'Business Phone' then telcom_address end) as business_phone, 
     max(case when telcom_name = 'Business Email' then telcom_address end) as business_email 
from mi_s_data.dbo.temp_mos_contact tmc 
group by contact_id;