Salve,
[OT]
al di la' che “sia una cosa bruttissima”, in T-SQL si puo' fare, ad esempio con STRING_SPLIT(..) + STRING_AGG (…) WITHING GROUP (ORDER BY ….)
sicuramente “pesante” dal punto di vista computazionale visto che OGNI riga deve essere scomposta in sotto insiemi di CampoX per poi riaggregare questi insiemi per valore ordinato…. ma si puo' fare…
DECLARE @t TABLE (Id int, Campo2 varchar(50));
INSERT @t
VALUES ( 1, '' )
, ( 2, 'elemento2-elemento1' )
, ( 3, 'elemento2-elemento3-elemento1' );
WITH cteSplit AS (
SELECT t.Id
, value AS SplitValue
FROM @t t
CROSS APPLY STRING_SPLIT(t.Campo2, '-')
),
cteOrd AS (
SELECT Id, STRING_AGG(SplitValue, '-') WITHIN GROUP (ORDER BY SplitValue ASC) AS SplitValueOrdered
FROM cteSplit
GROUP BY Id
)
SELECT t.*
, c.SplitValueOrdered
FROM @t t
LEFT JOIN cteOrd c ON c.Id = t.Id
ORDER BY t.Id;
[/OT]
quindi, forse si puo' fare anche in MySql…. cio' non toglie che, come gia' detto, e' molto sbagliato :D
salutoni romagnoli
–
Andrea