Я использую ниже запрос, чтобы получить данныеКак получить все различные данные из столбцов трубы разделителями
SELECT NMA.MsgAddress,CC.PagerNum,CC.Email,CC.VoiceNum
FROM [Table1] GEP (NOLOCK)
INNER JOIN [Table2] CC (NOLOCK)
ON GEP.PersonID = CC.PersonID
LEFT OUTER JOIN [Table3] NME (NOLOCK)
ON GEP.PAN = NME.Cardnumber
AND NME.Status = 2 --ACTIVE (Enrolment Status)
INNER JOIN [Table4] NMA (NOLOCK)
ON NME.MsgAddressUID = NMA.MsgAddressUID
AND NMA.Status = 1 --ACTIVE (Address Status)
INNER JOIN [Table5] NMAT (NOLOCK)
ON NMA.MsgAddressTypeUID = NMAT.MsgAddressTypeUID
AND NMAT.MsgAddressType IN ('MobileNumber','EMAIL')
WHERE GEP.PAN IN (TEST)
Вывод, который я получаю, как показано ниже
нуждающегося для получения отдельной строки результатов, ограниченной ниже.
9856235687|[email protected]|698754321|[email protected]|123121212
Столбец MsgAddress - это тот, у которого есть несколько записей.
также пробовал этот тип синтаксиса ВЫБРАТЬ ISNULL (CONVERT (VARCHAR (MAX), NMA.MsgAddress), '') + '|' + \t \t ISNULL (CONVERT (VARCHAR (MAX), CC.VoiceNum), '') + '|' + \t \t ISNULL (CONVERT (VARCHAR (MAX), CC.BusNum), '') + '|' + \t \t ISNULL (CONVERT (VARCHAR (MAX), CC.FaxNum), '') + '|' + \t \t ISNULL (CONVERT (VARCHAR (MAX), CC.EmerPhone), '') + '|' + \t \t ISNULL (CONVERT (VARCHAR (MAX), CC.Email), '') + '|' + \t \t ISNULL (CONVERT (VARCHAR (MAX), CC.PagerNum), '') Хотя это все еще дает два набора записей, где мне нужен только один набор записей с уникальными значениями. – Joby
Можно ли изменить приведенный выше запрос, чтобы показать результаты, как показано ниже, на основе доступных значений? R1. Если все значения присутствуют, то указанный выше запрос работает потрясающе. R2. Если значение MsgAddress недоступно, оно должно просто показать остальные значения i.e PagerNum | Email | VoiceNum R3. Если присутствует только значение MsgAddress, ему просто нужно показать значение 9856235687|[email protected] – Joby