Utilize
order by CONCAT('X', lpad("MSN",5,'0')), "SB_NUMBER"
em vez de
order by "MSN", "SB_NUMBER"
Avalados por :
Olá Especialistas,
Meu requisito é adicionar os valores de forma ordenada conforme mostrado abaixo.
atualmente o código é o seguinte.
FUNCTION .cs.I072-SB_Reporting.BUSINESSLOGIC.TABLE_FUNCTION::TF_SB_EFF_MSN_CONCAT" ( )
DEVOLVE TABELA(
"SB_NUMBER" NVARCHAR(10),
"MSN_LIST" NVARCHAR(5000),
"MSN_COUNT" INTEGER
)
LINGUAGEM SQLSCRIPT
SEGURANÇA SQL INVOKER COMO
BEGIN
/*********************************
Fundir todos os estados ativos em uma única célula
**********************************/
return SELECT "SB_NUMBER",
STRING_AGG("MSN",',') AS "MSN_LIST" ,
COUNT("MSN") AS "MSN_COUNT"
FROM
(
SELECT DISTINCT
"SB_NUMBER",
CONCAT('X', lpad("MSN",5,'0')) AS "MSN"
FROM "INTERNAL_1S79"."class-Reporting.TABLEDEF::EFF.ZT_EFFECT_MSN_SB" as "ZT_EFFECT_MSN_SB"
LEFT OUTER JOIN "_SYS_BIC"."class-Reporting.BASE/CV_XCS_ZDCI0T_SB_REVI" as "CV_XCS_ZDCI0T_SB_REVI"
ON "ZT_EFFECT_MSN_SB".SB_NUMBER = "CV_XCS_ZDCI0T_SB_REVI"."SB_NUM"
WHERE ( "MSN" NOT IN ('425', '441', '434', '444', '482', '484', '522', '523') AND "CV_XCS_ZDCI0T_SB_REVI"."AC_TYPE" = '2')
OR "CV_XCS_ZDCI0T_SB_REVI"."AC_TYPE" <> '2'
order by "MSN", "SB_NUMBER"
)
group by "SB_NUMBER" ;
END;
Mas estou obtendo resultados como mostrado abaixo. A concatenação de strings não está em ordem.
Quero implementar uma lógica semelhante à mostrada abaixo no console, mas estou recebendo um erro ao usar Order by com a função STRING_AGG.
Aqui obtenho os valores corretos, mas ao tentar implementar o código a seguir na função de tabela, recebo um erro que diz "Erro de sintaxe. "order" está incorreto ou mal colocado."
Utilize
order by CONCAT('X', lpad("MSN",5,'0')), "SB_NUMBER"
em vez de
order by "MSN", "SB_NUMBER"
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute