|
| Omskrivning af SQL sætning fra MySQL til M~ Fra : Kim Andersen |
Dato : 27-06-06 09:01 |
|
Hej NG.
Jeg har en SQL sætning, hvor jeg i MySQL har lavet så den sortere på en
bestemt måde.
Men denne sætning er MS SQL ikke med på. How-to do ?
MySQL sætning.
SELECT action FROM tbl_action ORDER BY action='checkactivity' DESC,
action='setactivity' DESC
Hvordan skal den omskrives til MS SQL?
/Kim
| |
Jens Gyldenkærne Cla~ (27-06-2006)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 27-06-06 13:20 |
|
Kim Andersen skrev:
> MySQL sætning.
>
> SELECT action FROM tbl_action ORDER BY action='checkactivity'
> DESC, action='setactivity' DESC
Hvad gør den?
> Hvordan skal den omskrives til MS SQL?
Et bud, uden at vide hvordan MySQL håndterer din nuværende sætning:
SELECT action
FROM tbl_action
ORDER BY CASE action
WHEN 'checkactivity' THEN 2
WHEN 'setcativity' THEN 1
ELSE 0 END
Hvis der kun er de to værdier, kan du vel også bare bruge:
.... ORDER BY action
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Peter Brodersen (27-06-2006)
| Kommentar Fra : Peter Brodersen |
Dato : 27-06-06 13:35 |
|
On Tue, 27 Jun 2006 14:19:43 +0200, Jens Gyldenkærne Clausen
<jens@gyros.invalid> wrote:
>SELECT action
>FROM tbl_action
>ORDER BY CASE action
> WHEN 'checkactivity' THEN 2
> WHEN 'setcativity' THEN 1
> ELSE 0 END
Jeg vil antage, at du skal have en DESC på her.
--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej: www.findvej.dk
Nu med link direkte til en adresse, fx: www.findvej.dk/Nybrogade2,1203
| |
Jens Gyldenkærne Cla~ (27-06-2006)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 27-06-06 14:06 |
|
Peter Brodersen skrev:
>> SELECT action
>> FROM tbl_action
>> ORDER BY CASE action
>> WHEN 'checkactivity' THEN 2
>> WHEN 'setcativity' THEN 1
>> ELSE 0 END
>
> Jeg vil antage, at du skal have en DESC på her.
Det har du nok ret i. Det afhænger af om de to navngivne værdier
skal komme før eller efter alle andre (jeg er ikke sikker på hvad
den oprindelige forespørgsel skal gøre).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Peter Brodersen (27-06-2006)
| Kommentar Fra : Peter Brodersen |
Dato : 27-06-06 14:08 |
|
On Tue, 27 Jun 2006 15:06:22 +0200, Jens Gyldenkærne Clausen
<jens@gyros.invalid> wrote:
>Det har du nok ret i. Det afhænger af om de to navngivne værdier
>skal komme før eller efter alle andre (jeg er ikke sikker på hvad
>den oprindelige forespørgsel skal gøre).
Den oprindelige vil for hvert af udsagnene returnere 1 (sand) eller 0
(falsk), og så sortere faldende efter denne værdi.
--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej: www.findvej.dk
Nu med link direkte til en adresse, fx: www.findvej.dk/Nybrogade2,1203
| |
Kim Andersen (06-07-2006)
| Kommentar Fra : Kim Andersen |
Dato : 06-07-06 11:18 |
|
Hej Jens.
> Hvad gør den?
Tabellen indeholder forskellige actions, ca. 5 forskellige.
Men 'checkactivity' og 'setactivity' skal komme først og så derefter de
andre.
> Et bud, uden at vide hvordan MySQL håndterer din nuværende sætning:
>
> SELECT action
> FROM tbl_action
> ORDER BY CASE action
> WHEN 'checkactivity' THEN 2
> WHEN 'setcativity' THEN 1
> ELSE 0 END
Okay, så med denne indstilling , vil 'checkactivity' og 'setactivity' komme
før de andre ?
/Kim
| |
|
|