sql >> Database teknologi >  >> RDS >> Mysql

Brug CASE, WHEN, THEN, END i en udvalgt forespørgsel med MySQL

Select LNext.player As NextPlayer
From lineups As L
    Left Join lineups As LNext
        On LNext.BattingOrder Between 11 And 20
            And LNext.BattingOrder  = Case
                                        When L.BattingOrder  = 19 Then 11
                                        Else L.BattingOrder  + 1
                                        End
Where L.battingOrder Between 11 And 20
    And L.active = 1

Faktisk kunne du få det til at klare både hjemme og ude sådan:

Select LNext.player As NextPlayer
From lineups As L
    Left Join lineups As LNext
        On LNext.BattingOrder  = Case
                                    When L.BattingOrder  = 19 Then 11
                                    When L.BattingOrder  = 9 Then 1
                                    Else L.BattingOrder  + 1
                                    End
Where L.active = 1



  1. Brug af Excel VBA til at køre SQL-forespørgsel

  2. Hvordan skriver man en forespørgsel, der gør noget, der ligner MySQL's GROUP_CONCAT i Oracle?

  3. Softwaregennemgang – Stellar Repair til MS SQL

  4. Bryder MySQL standarden ved at tillade at vælge kolonner, der ikke er en del af group by-klausulen?