/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
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

Søg
Reklame
Statistik
Spørgsmål : 177438
Tips : 31962
Nyheder : 719565
Indlæg : 6408045
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste