Hirdetés

Új hozzászólás Aktív témák

  • Sk8erPeter
    nagyúr

    egy táblában (postgresql) lakcímek vannak. a normalizálás során az utcanév kikerült egy másik táblába, egy azonosító mező maradt meg. A lakcím táblát sorba kellene rendezni házszám szerint.

    A nehezítés, hogy a házszám string, mivel van szám, szám per betű, számtólszámig és több más forma is.

    minden ötletet megköszönök. releváns részlet:

    id | street_id | number
    ------+-----------+------------
    1 | 23 | 4/a
    2 | 23 | 5/a
    3 | 23 | 14
    4 | 23 | 16
    5 | 23 | 11
    6 | 23 | 11/a
    7 | 23 | 20
    8 | 23 | 13
    9 | 23 | 13/b
    10 | 23 | 20/a
    18 | 23 | 38
    19 | 23 | 21
    20 | 36 | 119
    21 | 36 | 117/b
    22 | 36 | 117/a
    23 | 36 | 115
    24 | 46 | 16
    25 | 23 | 18
    26 | 42 | 11

    Biztos sok hibalehetőséget rejt magában, amit most nem volt alkalmam normálisan tesztelni, és most gyorsan csak MySQL-lel teszteltem, de ilyen castolás nem jó?

    tesztként query (itt implicit castolással):

    mysql> SELECT * FROM `mytable` ORDER BY (`number` * 1) ASC, `number` ASC;
    +----+-----------+--------+
    | id | street_id | number |
    +----+-----------+--------+
    | 1 | 23 | 4/a |
    | 2 | 23 | 5/a |
    | 26 | 42 | 11 |
    | 5 | 23 | 11 |
    | 6 | 23 | 11/a |
    | 8 | 23 | 13 |
    | 9 | 23 | 13/b |
    | 3 | 23 | 14 |
    | 4 | 23 | 16 |
    | 24 | 46 | 16 |
    | 25 | 23 | 18 |
    | 7 | 23 | 20 |
    | 10 | 23 | 20/a |
    | 19 | 23 | 21 |
    | 18 | 23 | 38 |
    | 23 | 36 | 115 |
    | 22 | 36 | 117/a |
    | 21 | 36 | 117/b |
    | 20 | 36 | 119 |
    +----+-----------+--------+
    19 rows in set (0.00 sec)

Új hozzászólás Aktív témák