Изменение запроса Oracle на MS SQL Server

У меня есть запрос SQL с синтаксисом жалобы Oracle. Это должно быть изменено в соответствии с синтаксисом MS SQL Server. Я не уверен, как LISTAGG изменится. Любая помощь горячо приветствуется. Ниже приведен запрос

select decode(isnull(c.CROSS_SALE_IND, 'F'), 'T', 'Cross Sale to ' + decode(isnull(c.cross_sale_mag_code, ''), '', isnull(c.external_place_ment, ' '), isnull(csvm.mag_name, ' ')), ' ') + decode(isnull(c.cross_sale_linked_campaign_id, 0), 0, '', (' Linked to Campaign ' + csc.mag_code + ' ' + csc.campaign_name + ' ' + decode(csc.special_issue_ind, 'T', convert(varchar, csc.from_date, 101), convert(varchar, csc.from_date, 101) + decode(nvl(csc.to_date, ''), '', '', ' - ') + convert(varchar, csc.to_date, 101)) + ' ' + convert(varchar, csc.from_issue) + decode(nvl(csc.from_issue, 0), 0, '', ' - ') + to_char(csc.to_issue))) + '  ' + ' ' + DECODE((
            select COUNT(CAMPAIGN_ID)
            from TBK_CAMPAIGN
            where CROSS_SALE_LINKED_CAMPAIGN_ID = 1
                and STATUS_CODE not in ('C', 'D')
            ), '0', '', (
            select 'Cross Sale From ' + LISTAGG(cross, '; ') WITHIN
            group (
                    order by cross
                    ) CROSS_SALE_MAG
            from (
                select ISNULL(CSVM.MAG_NAME, ' ') + ' ' + 'IC-' + C.MAG_CODE + ' ' + C.CAMPAIGN_NAME cross
                from TBK_CAMPAIGN C
                left join VWK_MAGAZINE CSVM on CSVM.MAG_CODE = C.MAG_CODE
                where C.CROSS_SALE_LINKED_CAMPAIGN_ID = 1
                    and STATUS_CODE not in ('C', 'D')
                )
            )) cross_sale_mag
from TBK_CAMPAIGN c
inner join TBK_CAMPAIGN_STATUS cs on c.status_code = cs.status_code
inner join VWK_MAGAZINE vm on vm.mag_code = c.mag_code
left join VWK_MAGAZINE csvm on csvm.mag_code = c.cross_sale_mag_code
left join TBK_CAMPAIGN csc on csc.campaign_id = c.cross_sale_linked_campaign_id
where c.campaign_id = 1

Заранее спасибо.


person prathyaksh    schedule 10.03.2017    source источник
comment
Не могу задать общий вопрос. В этом вопросе есть разница. Если ответят, многие сомнения развеются.   -  person prathyaksh    schedule 10.03.2017
comment
Что я предлагаю вам сделать, так это сначала изолировать часть запроса, которая использует LISTAGG, затем взглянуть на лонк и попытаться реализовать его. Затем опубликуйте результат с любыми сообщениями об ошибках.   -  person Nick.McDermaid    schedule 10.03.2017