demande

Utilisation

view: view_name {
  dimension: field_name {
    case: {
      when: {
        sql: SQL condition ;;
        label: "value"
      }
      # Possibly more when statements
      else: "value"
    }
    alpha_sort:  yes
  }
}
Hiérarchie
case
Types de champs possibles
Dimension

Acceptation
Une condition SQL et une chaîne

Règles spéciales
Utilisez un paramètre alpha_sort si vous souhaitez que les valeurs soient classées par ordre alphabétique.

Définition

case vous permet de regrouper les résultats dans des buckets à l'aide de la logique de casse. Bien que vous puissiez écrire des instructions SQL brutes CASE, l'utilisation de case créera un menu déroulant pour vos utilisateurs dans l'interface utilisateur Looker. Une instruction SQL CASE ne créera pas un tel menu.

La forme générale de case est la suivante :

dimension: status {
  case: {
    when: {
      sql: condition ;;
      label: "Label of Condition"
    }
    # possibly more when statements
    else: "Label If No Condition Met"
  }
}

Ces paramètres fonctionnent comme suit :

  • when : vous pouvez utiliser autant d'instructions when que vous le souhaitez pour représenter chaque condition pour laquelle vous souhaitez fournir un libellé. Les instructions when sont évaluées dans l'ordre, de la première à la dernière. La première instruction when qui est évaluée comme étant "true" attribuera le libellé associé.
  • sql : le paramètre sql accepte une condition SQL qui renvoie la valeur "true" ou "false".
  • label : libellé qui sera attribué si la condition SQL est vraie. Le libellé attribué a un type de données string. La valeur de chaque label dans une instruction case doit être unique. Si vous utilisez la même valeur label pour plusieurs conditions SQL, seule la dernière condition SQL de l'instruction case se voit attribuer la valeur label. Consultez la section Exemples sur cette page.
  • else : ce libellé sera utilisé si aucune de vos conditions n'est remplie.

Choisir l'ordre de tri des libellés avec alpha_sort

En règle générale, les valeurs case s'affichent dans l'ordre dans lequel vous les saisissez. Si vous préférez un tri alphabétique, vous pouvez utiliser alpha_sort: yes comme suit :

dimension: status {
  alpha_sort: yes
  case: { ... }
}

Exemples

Attribuez plusieurs libellés lisibles à différents numéros d'état :

dimension: status {
  case: {
    when: {
      sql: ${TABLE}.status = 0 ;;
      label: "pending"
    }
    when: {
      sql: ${TABLE}.status = 1 ;;
      label: "complete"
    }
    when: {
      sql: ${TABLE}.status = 2 ;;
      label: "returned"
    }
    else: "unknown"
  }
}

Lorsque la même condition est répétée et renvoie des libellés différents, LookML utilise la première condition qui renvoie la valeur "true". Dans l'exemple suivant, ${TABLE}.status = 0 renvoie pending et non returned, car la condition pending est évaluée en premier.

dimension: status {
  case: {
    when: {
      sql: ${TABLE}.status = 0 ;;
      label: "pending"
    }
    when: {
      sql: ${TABLE}.status = 1 ;;
      label: "complete"
    }
    when: {
      sql: ${TABLE}.status = 0 ;;
      label: "returned"
    }
    else: "unknown"
  }
}

Lorsque plusieurs conditions renvoient le même libellé, LookML n'utilise que la première condition. Dans l'exemple suivant, Looker utilisera ${TABLE}.status = 0 au lieu de ${TABLE}.status = 2 pour générer l'instruction SQL CASE qui correspond à pending. Lorsque ${TABLE}.status = 2, l'instruction CASE renvoie unknown.

view: orders
dimension: status {
  case: {
    when: {
      sql: ${TABLE}.status = 0 ;;
      label: "pending"
    }
    when: {
      sql: ${TABLE}.status = 1 ;;
      label: "complete"
    }
    when: {
      sql: ${TABLE}.status = 2 ;;
      label: "pending"
    }
    else: "unknown"
  }
}

Bon à savoir

Lorsqu'une dimension contient un paramètre case qui fait référence à un autre champ, ce champ supplémentaire peut être ajouté au code SQL sous-jacent d'une requête dans laquelle la dimension est utilisée. Si le champ référencé n'est pas présent dans la visualisation de la requête et que la visualisation est un tableau avec des colonnes réorganisées manuellement, l'ordre des colonnes dans certains formats téléchargés peut être affecté.