Vill sortera en mängd poster enligt två fält: ett heltal och en textrubrik. Du kan göra det med en UNION Prövade men fick inte ut posterna i "två block" som önskat. Vill få ut posterna enligt exempel nedan där första halvan visar de med heltal<>0 och andra halvan de poster med heltal=0. Båda blocken separat sorterade i a-ö ordning. Så här kan du göra... Vad har du för databas? Access? Japp, använder Access. ok jag skrev för sql, testa detta i access: Får nu istället felet: oops slarvigt av mig. Det går inte att skriva aliaset i order by...skriv så här (jag har testat frågan nu.... Hmm... Inget felmeddelande nu längre, men hos mig verkar den fasta i en oändlig loop nu istället när sql-satsen körs. :( Det kan inte bli en loop i accessen. Däremot kanske datan är låst när du ska köra den här frågan så att frågan väntar och väntar på sin tur. Eller så har du gjort någon loop kodmässigt i ditt program. Testa att köra frågan direkt i access eget frågefömster för att se att du får rätt data. Yes, det funkar nu! Det måste varit nåt mysko med IIS på min testdator igår.En speciell order by...
Jag vill få ut alla poster i a-ö ordning, men med ett undantag. Jag vill först få ut posterna där heltalet<>0 med en inbördes a-ö ordning, sedan efter dessa de fält med heltal=0 också i en inbördes a-ö ordning. Hoppas jag är tydlig nog? :)
Jag har nu löst det genom att först köra en sats som hämtar de första och sen en sats som hämtar de andra, men undrar om det istället kan hämtas i ett svep?Sv: En speciell order by...
<code>
(SELECT * FROM tabell WHERE heltal <> 0 ORDER BY namn)
UNION
(SELECT * FROM tabell WHERE heltal = 0 ORDER BY namn)
</code>Sv:En speciell order by...
anna
david
ingela
örjan
astrid
kalle
mona
åsaSv: En speciell order by...
SELECT *, CASE WHEN Heltal <> 0 THEN 0 ELSE 1 END AS CompHelTal FROM tabell ORDER BY CompHeltal, namnSv: En speciell order by...
När jag testar på MySQL får jag ut resultat som du vill ha, vet dock inte hur Access hanterar sortering i UNION.
Viktigt är i alla fall att ha parenteser runt de båda SELECT satserna.Sv:En speciell order by...
Jenny, när jag prövar ditt får jag:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'CASE WHEN egenmeny<>0 THEN 0 ELSE 1 END'.
Så här exakt ser min sats ut, när det skrivs enligt ditt mönster:
SELECT *, CASE WHEN egenmeny<>0 THEN 0 ELSE 1 END AS CompHelTal FROM sidor_data ORDER BY CompHeltal asc, rubrik ascSv: En speciell order by...
SELECT *, iif ((egenmeny<>0), 0, 1) AS CompHelTal FROM sidor_data ORDER BY CompHeltal asc, rubrik ascSv:En speciell order by...
Microsoft OLE DB Provider for ODBC Drivers fel '80040e10'
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades. Sv: En speciell order by...
SELECT *, iif ((egenmeny<>0), 0, 1) AS CompHelTal FROM sidor_data ORDER BY iif ((egenmeny<>0), 0, 1) asc, rubrik ascSv:En speciell order by...
Sv: En speciell order by...
Kan du visa hela din metod där du skriver denna sql fråga?Sv:En speciell order by...
Stort tack för hjälpen!