ďťż
 
sortowanie problem ďťż
 
sortowanie problem
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

sortowanie problem



jp - 04-08-2006 01:23
sortowanie problem
  Witam
Jak powinienem użyć CAST?
Jest sobie tabela zawierająca kolumnę 'numer' kolumna numer jest typu
char(). Są w nią wpisywane w zasadzie liczby całkowite ale musi być
możliwość wpisania np. "1A".
Wyświetlając dane z tabeli chciałbym posortować wg kolumny numer, więc
robię:
SELECT * FROM tabela ORDER BY CAST(numer AS INTEGER)

No i jeśli są tylko cyfry to działa ok, natomiast jak są cyfry i litery lub
tylko litery to

Warning:ibase_query(): conversion error from string "1A " in ....

Czy można jakoś to obejść, tzn aby baza się nie burzyła?

Chodzi o bazę Firebird (w połączeniu z PHP).

Pozdrawiam
Jacek Poźniak





SuperTen - 04-08-2006 01:23

  jp napisał(a):
> Witam
> Jak powinienem użyć CAST?
> Jest sobie tabela zawierająca kolumnę 'numer' kolumna numer jest typu
> char(). Są w nią wpisywane w zasadzie liczby całkowite ale musi być
> możliwość wpisania np. "1A".
> Wyświetlając dane z tabeli chciałbym posortować wg kolumny numer, więc
> robię:
> SELECT * FROM tabela ORDER BY CAST(numer AS INTEGER)
>

ja kiedyś rozwiązałem tą sprawę za pomocą dodatkowego pola w bazie (bez
liter) i po nim sortowałem

--
_________
/ , _ \ | Pozdrawiam. SuperTen. |
`. '|(_) .' | "...Codziennie gdy wstajesz, otrzymujesz |
`. .' | szansę, aby stać się lepszym..." |
`.' | ...@..%..+ $this->wyslij(); |




mariusz.maximus - 04-08-2006 01:23

  jp napisał(a):
> Witam
> Jak powinienem użyć CAST?
> Jest sobie tabela zawierająca kolumnę 'numer' kolumna numer jest typu
> char(). Są w nią wpisywane w zasadzie liczby całkowite ale musi być
> możliwość wpisania np. "1A".
> Wyświetlając dane z tabeli chciałbym posortować wg kolumny numer, więc
> robię:
> SELECT * FROM tabela ORDER BY CAST(numer AS INTEGER)
>
> No i jeśli są tylko cyfry to działa ok, natomiast jak są cyfry i litery lub
> tylko litery to
>
> Warning:ibase_query(): conversion error from string "1A " in ....
>
> Czy można jakoś to obejść, tzn aby baza się nie burzyła?
>
> Chodzi o bazę Firebird (w połączeniu z PHP).
>
> Pozdrawiam
> Jacek Poźniak
>
>
>

mysle ze jakis prosty UDF zalatwił by ten problem




Michał Kuratczyk - 04-08-2006 01:23

  jp wrote:
> Jest sobie tabela zawierająca kolumnę 'numer' kolumna numer jest typu
> char(). Są w nią wpisywane w zasadzie liczby całkowite ale musi być
> możliwość wpisania np. "1A".
> Wyświetlając dane z tabeli chciałbym posortować wg kolumny numer, więc
> robię:
> SELECT * FROM tabela ORDER BY CAST(numer AS INTEGER)
>
> No i jeśli są tylko cyfry to działa ok, natomiast jak są cyfry i litery
> lub tylko litery to
>
> Warning:ibase_query(): conversion error from string "1A " in ....
>
> Czy można jakoś to obejść, tzn aby baza się nie burzyła?
1. Po co w ogóle rzutujesz na integer? Czemu nie robisz sortowania
alfanumerycznego?
2. Czy jesteś absolutnie pewien, że '1A', to jest jedna wartość, a nie dwie?
Czy aby nie są to logicznie dwie różne informacje, które przyjęło się
podawać razem? Bo jeśli to są dwie wartości, z których każda ma własne
znaczenie (np. 1 - numer egzemplarza, A - symbol maszyny, która ten
egzemplarz wyprodukowała, czy coś w tym stylu), to powinny być po prostu
dwa pola w bazie (i ewentualnie trzecie sklejające) i wtedy sortujesz po
prostu "order by numer, symbol".

--
Michał Kuratczyk





jp - 06-08-2006 02:18

  Dzięki za pomoc
Widzę, że będę musiał nieco inaczej podejść do problemu.

Pozdrawiam
Jacek Poźniak
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • latwa-kasiora.pev.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com