Simple Case

Case( property | compute expression )

.When( property | compute expression | constant )

.Then( property | compute expression | constant )

......

.When( property | compute expression | constant )

.Then( property | compute expression | constant )

.Else( property | compute expression | constant )

.End ()

 

SelectQuery sel = OQL

  .Select(NW.Order.OrderID, NW.Order.OrderDate, NW.Order.RequiredDate,

    OQL.Case(NW.Order.ShipCountry)

      .When("China").Then("cn")

      .When("United States").Then("us")

      .When("United Kingdom").Then("uk")

      .Else("com")

    .End()

  )

  .From(NW.Order)

  .Where(NW.Order.EmployeeID == 5 & NW.Order.ShipVia == 1);

The SQL statements generated as follows (taking SQL Server as an example)

SELECT

  [Orders].[OrderID] , [Orders].[OrderDate] , [Orders].[RequiredDate] ,

  (

    CASE

      [Orders].[ShipCountry]

      WHEN 'China'

        THEN 'cn'

      WHEN 'United States'

        THEN 'us'

      WHEN 'United Kingdom'

        THEN 'uk'

      ELSE

        'com'

    END

  )

FROM [Orders]

WHERE

  [Orders].[EmployeeID] = 5 AND

  [Orders].[ShipVia] = 1

Related Topics

Case Clause