How to do the following in SQL Server

0

Good, I have a question. What I have to show is the following in the case that cte was 1 you have to list the following pair (WITHOUT DATA, HOLDER, INTERIM, ALTERNATE, PROV.C / RETER, PROVISORIO AT TERM) and in the case of being cte 2 Show PERMANENT, CONTRACTED, TEMPORARY, PROVISORIOUS) How can I do it since the sentence I use does not do that?

select top (10) t.tab_sit_rev_id as id,t.tab_sit_rev_desc as descripcion,t.cte_tipo_sit_rev as cte,sitrevs = (select STUFF((select ', '+ ta.tab_sit_rev_desc
                    from TAB_SIT_REVISTA_CARACTER ta
                    for xml path('')),1,1,''))from TAB_SIT_REVISTA_CARACTER t  
    
asked by pj2016 04.12.2017 в 14:00
source

1 answer

0

You can use a CASE expression:

SELECT TOP(10) col1, 
               col2, 
               CASE cte_tipo_sit_rev
                    WHEN 1 THEN 'SIN DATOS,TITULAR,INTERINO,SUPLENTE,PROV. C/RETER,PROVISORIO A TERMINO'
                    WHEN 2 THEN 'PERMANENTE,CONTRATADO,TEMPORARIO,PROVISORIO'
               END 
FROM ....

Put in your code would be:

SELECT TOP (10) t.tab_sit_rev_id   AS id, 
                t.tab_sit_rev_desc AS descripcion, 
                t.cte_tipo_sit_rev AS cte, 
                CASE t.cte_tipo_sit_rev 
                    WHEN 1 THEN 'SIN DATOS,TITULAR,INTERINO,SUPLENTE,PROV. C/RETER,PROVISORIO A TERMINO'
                    WHEN 2 THEN 'PERMANENTE,CONTRATADO,TEMPORARIO,PROVISORIO'
                END,
                sitrevs = (SELECT Stuff((SELECT ', ' + ta.tab_sit_rev_desc 
                                         FROM   tab_sit_revista_caracter ta 
                                         FOR xml path('')), 1, 1, '')) 
FROM   tab_sit_revista_caracter t;
    
answered by 04.12.2017 в 14:10