Class PredicateObject.CaseObject

java.lang.Object
io.bitbucket.dsmoons.odk.sql.query.builder.PredicateObject.CaseObject
Enclosing class:
PredicateObject

public static class PredicateObject.CaseObject extends Object

Объект с методами построения выражения CASE.

Простое выражение:


  var category = caseExpression("ProductLine")
      .when("R").then("Road")
      .when("M").then("Mountain")
      .when("T").then("Touring")
      .when("S").then("Other sale items")
      .elseExpression("Not for sale")
      .end("Category");
      var categoryQuery = select("ProductNumber", "Name", category).from("Product");

  SELECT ProductNumber, Name,
      CASE ProductLine
          WHEN 'R' THEN 'Road'
          WHEN 'M' THEN 'Mountain'
          WHEN 'T' THEN 'Touring'
          WHEN 'S' THEN 'Other sale items'
          ELSE 'Not for sale'
      END AS Category
  FROM Product
 

Поисковое выражение:


  var priceRange = caseExpression()
      .when(field("ListPrice").equalTo(0)).then("Item not for resale")
      .when(field("ListPrice").lessThan(50)).then("Under 50")
      .when(field("ListPrice").greaterThanOrEqualTo(50).and().field("ListPrice").lessThan(250)).then("Under 250")
      .when(field("ListPrice").greaterThanOrEqualTo(250).and().field("ListPrice").lessThan(1000)).then("Under 1000")
      .elseExpression("Over 1000")
      .end("PriceRange");
  var priceRangeQuery = select("ProductNumber", "Name", priceRange).from("Product");

  SELECT ProductNumber, Name,
      CASE
          WHEN ListPrice = 0 THEN 'Item not for resale'
          WHEN ListPrice < 50 THEN 'Under 50'
          WHEN ListPrice >= 50 AND ListPrice < 250 THEN 'Under 250'
          WHEN ListPrice >= 250 AND ListPrice < 1000 THEN 'Under 1000'
          ELSE 'Over 1000'
      END AS PriceRange
  FROM Product
 
  • Method Details

    • caseExpression

      public static Case.CaseWhen caseExpression()
      Метод добавляет оператор CASE для построения поискового выражения CASE
      Returns:
      Объект Case.CaseWhen для продолжения построения выражения
      Since:
      1.4.0
      See Also:
    • caseExpression

      public static Case.CaseWhen caseExpression(String f)
      Метод добавляет оператор CASE и название поля для построения простого выражения CASE
      Parameters:
      f - Поле
      Returns:
      Объект Case.CaseWhen для продолжения построения выражения
      Since:
      1.4.0
      See Also:
    • caseExpression

      public static Case.CaseWhen caseExpression(Field f)
      Метод добавляет оператор CASE и название поля для построения простого выражения CASE
      Parameters:
      f - Поле
      Returns:
      Объект Case.CaseWhen для продолжения построения выражения
      Since:
      1.6.0
      See Also: