|
| Order by med komma Fra : N9 |
Dato : 30-07-07 14:21 |
|
Hej
jeg har et problem og ved ikke om det kan løses
Jeg har en datafelt med følgende data.
Nielsen, Hans
Petersen, Viggo
Madsen, Mogens
Der ejg ville er at lave en select kald og lave en order by fornavn.
Pt. er data komma separere med komma så fornavn kommer til sidst,
nogle som har en ide hvor da sådan et kald laves ?
Datastruktur og normalisering kan ikke laves om på.
Mvh
N9
| |
Gert Krabsen (30-07-2007)
| Kommentar Fra : Gert Krabsen |
Dato : 30-07-07 14:56 |
|
N9 wrote:
> Hej
>
> jeg har et problem og ved ikke om det kan løses
>
> Jeg har en datafelt med følgende data.
>
> Nielsen, Hans
> Petersen, Viggo
> Madsen, Mogens
>
> Der ejg ville er at lave en select kald og lave en order by fornavn.
> Pt. er data komma separere med komma så fornavn kommer til sidst,
> nogle som har en ide hvor da sådan et kald laves ?
>
> Datastruktur og normalisering kan ikke laves om på.
>
> Mvh
> N9
>
Syntaks afhænger not af, hvilken database det, men forsøg evt. med
ORDER BY substr(navnefelt,instr(navnefelt,',')[,len(navnefelt)])
Men da du dermed ikke søger i et indekseret felt bliver performance
markant lavere ved store datamængder.
Jeg ville trodse din sidste bemærkning og alligevel lave om på
datastruktur ;)
Evt. ved at lave en hjælpetabel, hvor navnet er splittet på to felter.
Og som kun anvendes til denne sortering.
| |
Martin (30-07-2007)
| Kommentar Fra : Martin |
Dato : 30-07-07 14:53 |
|
N9 wrote:
> Hej
>
> jeg har et problem og ved ikke om det kan løses
>
> Jeg har en datafelt med følgende data.
>
> Nielsen, Hans
> Petersen, Viggo
> Madsen, Mogens
>
> Der ejg ville er at lave en select kald og lave en order by fornavn.
> Pt. er data komma separere med komma så fornavn kommer til sidst,
> nogle som har en ide hvor da sådan et kald laves ?
MySQL
SELECT
SUBSTRING_INDEX('Nielsen, Hans',', ',1) AS efternavn,
SUBSTRING_INDEX('Nielsen, Hans',', ',-1) AS fornavn
| |
Martin (30-07-2007)
| Kommentar Fra : Martin |
Dato : 30-07-07 14:56 |
|
Martin wrote:
> N9 wrote:
>> Hej
>>
>> jeg har et problem og ved ikke om det kan løses
>>
>> Jeg har en datafelt med følgende data.
>>
>> Nielsen, Hans
>> Petersen, Viggo
>> Madsen, Mogens
>>
>> Der ejg ville er at lave en select kald og lave en order by fornavn.
>> Pt. er data komma separere med komma så fornavn kommer til sidst,
>> nogle som har en ide hvor da sådan et kald laves ?
>
> MySQL
>
> SELECT
> SUBSTRING_INDEX('Nielsen, Hans',', ',1) AS efternavn,
> SUBSTRING_INDEX('Nielsen, Hans',', ',-1) AS fornavn
Glemte lige...
Så kan du lave en
ORDER BY fornavn
Alt i alt...
SELECT
SUBSTRING_INDEX('<navnefelt>',', ',1) AS efternavn,
SUBSTRING_INDEX('<navnefelt>',', ',-1) AS fornavn
FROM
<tabel>
ORDER BY
fornavn
| |
|
|