Mam identyfikator kolumny typu varchar tabeli i kolumny, a wartości to m1, m2, ... , m9,m10,m11,m12, a następnie używam zapytania

wybierz MAX(id) z tabeli

Ale wynik jako m9, ponieważ traktuje m10 jako „m”, „1”, „0” jako pojedyncze znaki. więc m9>m1(0).

Proszę o pomoc? jak zapytanie uzyskać max id z typu varchar?

0
N4ta nata 22 luty 2012, 12:08

2 odpowiedzi

Najlepsza odpowiedź
select max(CAST((substring(id,2)) AS DECIMAL(5,2))) from table;

Powinien załatwić sprawę.

1
msgmash.com 22 luty 2012, 12:17

Możesz użyć podciągu, aby osiągnąć maksymalną liczbę

select max(CAST((substring(id,2)) AS DECIMAL(5,0))) from table

Na końcu możesz też cancat z 'm'

select concat('m'+ max(CAST((substring(id,2)) AS DECIMAL(5,0)))) from table
2
Kayser 22 luty 2012, 12:24