Firebird sortowanie wynikow selekta

0

witam.... moj selekt z bazy:

SELECT distinct MS_SMBMASZ from PR_EPMS where MS_SMBMASZ like 'N%' order by MS_SMBMASZ ascending

daje mi:

N1
N10
N11
N12
N13
N14
N15
N16
N17
N2
N3
N4
N5
N6
N7
N8
N9

ja to bym chcial inaczej :/ mianowicie N1, N2, N3, N4, N5, N6, N7, N8, N9, N10...

jak skladnia musi wygladac?

0

Musisz więc wyciąć N i posortować po decymalnej zawartości reszty. Powinno być raczej proste, tylko musisz wiedziec jakiej funkcji użyć (SUBSTR, CAST itd. itp)

0

Sortowanie numeryczne a sortowanie alfabetyczne to dwie różne kwestie. Tutaj komputer sortuje alfabetycznie. Ew, osobne pole dla N i numeru.

0
select distinct substring(ms_smbmasz from 2 for 3)
from pr_epms
where 
   (
      (ms_smbmasz like 'N%')
   )
order by 1 ascending

dalo:

SUBSTRING
1
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9

pewnie jestem juz blisko ale dalej nie to...

0
select "numer" from (select distinct substring(ms_smbmasz from 2 for 3) as "numer"
from pr_epms
where 
   (
      (ms_smbmasz like 'N%')
   )
              )
              order by "numer" ascending

takze to nie pomoglo... wynik taki sam jak w poprzednim kodzie...

0
select distinct cast(substring(ms_smbmasz from 2) as integer)
from pr_epms
where ms_smbmasz like 'N%'
order by 1 asc

BTW na oraclu zamiast substring(ms_smbmasz from 2) będzie substr(ms_smbmasz, 2)

1 użytkowników online, w tym zalogowanych: 0, gości: 1