Avatar billede forceprogrammer Nybegynder
27. februar 2005 - 16:14 Der er 6 kommentarer og
1 løsning

Problem med sortering i oracle

Jeg har følgende SQL

SELECT    - 1 AS VAERDI, '' AS MULIG
FROM        VA_WWW_AUTOMAT
UNION
SELECT DISTINCT AUT_NAVN_NR AS VAERDI, AUT_NAVN AS MULIG
FROM        VA_WWW_AUTOMAT
WHERE    (KUNDE_NR = 331)
ORDER BY MULIG ASC

Problemet er at jeg gerne vil have den tomme streng til at optræde som den første post således at når siden loades vil denne være vist som standard i min selectboks.
Lige nu optræder den som nederste streng. Jeg vil have sorteret dem alfabetisk, men gerne have den tomme streng øverst(den tomme streng er søg på alt).

Hvordan kan jeg lave det?
Avatar billede Slettet bruger
27. februar 2005 - 16:24 #1
SELECT    - 1 AS VAERDI, '' AS MULIG
FROM        VA_WWW_AUTOMAT
UNION
SELECT DISTINCT AUT_NAVN_NR AS VAERDI, AUT_NAVN AS MULIG
FROM        VA_WWW_AUTOMAT
WHERE    (KUNDE_NR = 331)
ORDER BY NVL(MULIG, 'A') ASC
Avatar billede forceprogrammer Nybegynder
27. februar 2005 - 19:37 #2
Jeg får nu fejlen
ORA-01785: ORDER BY item must be the number of a SELECT-list expression

Hvis jeg bruger det NVL.

Hvad gør den helt præcist?
Avatar billede Slettet bruger
27. februar 2005 - 19:58 #3
jeg har ikke lige en sql*plus, så jeg kan prøve det af, det overrasker mig at der er problemer, men du kan formentlig skrive

select vaerdi, mulig
from (
SELECT    - 1 AS VAERDI, '' AS MULIG
FROM        VA_WWW_AUTOMAT
UNION
SELECT DISTINCT AUT_NAVN_NR AS VAERDI, AUT_NAVN AS MULIG
FROM        VA_WWW_AUTOMAT
WHERE    (KUNDE_NR = 331)
)
order by nvl(mulig, 'A')

Ideen med NVL er at hvis mulig har værdi NULL (eller '') skal den erstattes af værdien 'A'.
Avatar billede forceprogrammer Nybegynder
27. februar 2005 - 22:39 #4
Men det er ikke det jeg vil.

Jeg vil have at den har værdien tom streng men fremkommer som den første række således at den øverste række i min selectboks er tom
Avatar billede Slettet bruger
28. februar 2005 - 06:51 #5
På Oracle er en tom stregn er det samme som NULL.
Så du kunne måske bruge: ORDER BY mulig NULLS FIRST
Avatar billede Slettet bruger
28. februar 2005 - 08:35 #6
"Jeg vil have at den har værdien tom streng men fremkommer som den første række således at den øverste række i min selectboks er tom"

Ja, det er også ok. Derfor kan du godt lade sorteringen foregå over en anden værdi, der passer til den sortering du vil have
Avatar billede forceprogrammer Nybegynder
02. marts 2005 - 09:05 #7
Rahp. Det var lige det jeg skulle bruge :) Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester