Just nu i M3-nätverket
Gå till innehåll

Lägga ihop fält i sorteringen?


Stefan Trimmel

Rekommendera Poster

Stefan Trimmel

Hej!

 

Hur gör man om man vill lägga ihop två fält när man sorterar dem i SQL?

SELECT * FROM tabell WHERE (person1 = 'Gucke' AND senastinloggad2 > '2003-03-12') OR (person2 = 'Gucke' AND senastinloggad1 > '2003-03-12') ORDER BY senastinloggad1, senastinloggad2 DESC

 

Det jag vill är att istället för skriva ORDER BY senastinlogga1, senastinloggad2 skulle jag vilja skriva ORDER BY senastinloggad där senastinloggad innehåller alla senastinloggad1 och senastinloggad2.

 

Är det någon som vet hur man gör?

 

Länk till kommentar
Dela på andra webbplatser

Kristianstad
skulle jag vilja skriva ORDER BY senastinloggad där senastinloggad innehåller alla senastinloggad1 och senastinloggad2.
Jag förstår inte riktigt vad du menar. Skulle du vilja förklara lite närmare?

 

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Länk till kommentar
Dela på andra webbplatser

Stefan Trimmel

Javisst kan jag det.

 

Vi säger att jag får ut de här när jag skör SQL-satsen:

[iD] | [person1] | [person2] | [senastinloggad1] | [senastinloggad2]

3 | Gucke | Stefan | 2003-03-03 | 2003-02-17 |

8 | Gucke | Zeke | 2003-03-03 | 2002-12-20 |

1 | Per | Gucke | 2003-03-11 | 2003-03-03 |

7 | Anna | Gucke | 2003-02-17 | 2003-03-03 |

 

Då kommer de att skrivas ut:

[iD] | [person1] | [person2] | [senastinloggad1] | [senastinloggad2]

1 | Per | Gucke | 2003-03-11 | 2003-03-03 |

3 | Gucke | Stefan | 2003-03-03 | 2003-02-17 |

8 | Gucke | Zeke | 2003-03-03 | 2002-12-20 |

7 | Anna | Gucke | 2003-02-17 | 2003-03-03 |

 

Men jag vill att de ska skrivas ut:

[iD] | [person1] | [person2] | [senastinloggad1] | [senastinloggad2]

1 | Per | Gucke | 2003-03-11 | 2003-03-03 |

3 | Gucke | Stefan | 2003-03-03 | 2003-02-17 |

7 | Anna | Gucke | 2003-02-17 | 2003-03-03 |

8 | Gucke | Zeke | 2003-03-03 | 2002-12-20 |

 

Alltså om personen (Gucke i det är fallet) är i fälten person2 ska man gå efter senastinloggad1.

Om personen är i fältet person1 ska man gå efter senastinloggad2.

 

Blev du något klokare?

 

Länk till kommentar
Dela på andra webbplatser

Kristianstad

Jag kan tyvärr inte så mycket SQL att jag kan göra det du vill, men jag vet att det går. Du får använda dig av IF-satser i SQL-frågan.

 

Kanske någon annan på forumet som kan det?

/ Kristoffer

Windows kunde inte hitta något tangentbord. Tryck F1 för att försöka igen eller F2 för att avbryta.

 

Länk till kommentar
Dela på andra webbplatser

Hej!

 

Du kan ta med ett tredje beräknat fält som du gör själva sorteringen på.

 

select *

from table

ID,

case when person1 = 'Gucke' then senastinloggad1

else senastinloggad2

end as senastinloggadfältsomvisoreterarpå

order by senastinloggadfältsomvisoreterarpå

 

/foo

 

[inlägget ändrat 2003-03-15 16:28:37 av foo]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...