Buscar este blog

jueves, 16 de abril de 2015

SQL- Anidar columnas en un String - Comprobación de longitud en SQL

Voy a mostrar como obtener el resultado de 3 columnas de 1 QUERY en un único string. Para el anidado es muy importante el operador '  ||  ', que nos permitirá anidar.

NOMBRE +CAL.GRUPO+CA.ANO+ SI CAL.CODCALIDAD<2 00="" cal.codcalidad="" nbsp="">1   Y <3 0="" length="" si="">2 CAL.CODCALIDAD

AS CERTIFICADO



SELECT O.*,'NOMBRE-' || to_char(CAL.GRUPO)||to_char('-')||SUBSTR(TO_CHAR(CAL.ANO),3)||"+
" CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) < 2 "+
        "  THEN '00'||TO_CHAR(CAL.CODCALIDAD)    "+    
       "   END ||"+
      " CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >1 AND LENGTH(TO_CHAR(CAL.CODCALIDAD))<3 p="">      "     THEN '0'||TO_CHAR(CAL.CODCALIDAD)        "+
    "    END|| "+
   "     CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >2 "+
  "        THEN TO_CHAR(CAL.CODCALIDAD)        "+
 "       END "+
" AS CERTIFICADO FROM T  o "+
" JOIN L t on o.codl=t.codl "+
" JOIN PO a on t.costact=a.id "+
" JOIN G cal on cal.IDG=a.id "+
" WHERE o.coddar IN (?1)  "+
     " AND t.fecha between  ?2 and ?3 "+
     " ORDER BY t.fecha asc,o.orden2 asc,o.orden asc