sql >> Database >  >> RDS >> Mysql

CASE, WHEN, THEN, END gebruiken in een selectiequery met 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

Je zou het zelfs zo kunnen maken dat het zowel thuis als onderweg afhandelt:

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. String_agg voor SQL Server vóór 2017

  2. Time-outprobleem bij verbinding met basisgegevensbron (met mysql)

  3. Intelligente MySQL GROUP BY voor activiteitenstromen

  4. Domeinnaam selecteren uit e-mailadres