J'ai une table avec un ensemble de données suivant i utilise max () code> dans ce champ. p> Select max(ID) from <table-name>;
6 Réponses :
Vous obtenez d010 code> car alphabétiquement, d010 code> est livré après d0012 code> ou dit une autre manière, d01 code> vient après < code> d00 code> et donc tout ce qui est d01x code> vient après tout ce qui commence d00x code>. p>
Et voici un exemple, comment faire face à un tel problème - Stackoverflow.com/a/16496963/1469208
Cela devrait fonctionner
Select MAX(ID) from table where IsNumeric(ID) = 1 ;
Le code ci-dessous fonctionne pour moi selon votre attente
Cela fonctionnera sûrement.
select MAX(CAST(REPLACE(REPLACE(ID, 'D', ''), '', '') as int)) from <table-name>
premier Varchar doit casser comme INT pour sélectionner sous forme max. Utilisez ci-dessous Query: P>
Sélectionnez max (Cast (ID SIGNÉ SIGNÉ)) AS max_id à partir de
Sélectionnez *
De ID code> comme décimal (10, 3)) Desc P>
en.wikipedia.org/wiki/lexicographic_order
C'est un champ
varchar code>, pourquoi serait-il trié comme un numéro?