Ho una vista sql, chiamiamola SampleView
, i cui risultati hanno il seguente formato.gruppo tsql per ottenere il valore della colonna alfanumerica con lunghezza massima
Id (INT), NameA (VARVHAR(50)), NameB (VARCHAR(50)), ValueA (INT), ValueB (INT)
Il set di risultati della visualizzazione contiene righe che possono avere lo stesso Id
o meno. Quando ci sono due o più file con lo stesso ID, vorrei ottenere qualcosa di simile al seguente
SELECT
Id,
MAX(NameA),
MAX(NameB),
MAX(ValueA),
MAX(ValueB)
FROM SampleView
GROUP BY Id
ORDER BY Id
Per quanto riguarda le colonne Id
, ValueA
e ValueB
non c'è alcun problema. D'altra parte usando MAX
per entrambi NameA
e NameB
le cose non sono come previsto. Dopo alcuni googling e ricerche mi sono reso conto che MAX
non ha il comportamento "previsto" per le colonne alfanumeriche. Dire il previsto, voglio dire usando MAX
nel mio caso, sarebbe quello di restituire il valore di NameA
con il numero massimo di caratteri, MAX(LEN(NameA))
. Devo dire qui che non esiste alcuna possibilità per NameA
di avere due valori per lo stesso Id
con la stessa lunghezza. Ciò potrebbe rendere il problema più facile da risolvere.
Utilizzo SQL Server 2012 e TSQL
.
Avete qualche suggerimento su come potrei affrontare questo problema?
Grazie mille in anticipo per qualsiasi aiuto.
Grazie mille! È quello che voglio :) – Christos