Just nu i M3-nätverket
Jump to content

Lägga ihop fält i sorteringen?


Stefan Trimmel

Recommended Posts

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?

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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?

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...