Εκφράσεις υπό συνθήκες

Μπορείτε να χρησιμοποιήσετε εκφράσεις υπό συνθήκες για να δημιουργήσετε εκφράσεις που μετατρέπουν τιμές.

Οι εκφράσεις υπό συνθήκες που περιγράφονται σε αυτήν την ενότητα είναι δομικά στοιχεία για τη δημιουργία εκφράσεων που μετατρέπουν μια τιμή από μια μορφή σε μια άλλη.

Ακολουθήστε αυτούς τους κανόνες:

  • Στις προτάσεις CASE , το AND προηγείται έναντι του OR.
  • Οι συμβολοσειρές πρέπει να περικλείονται σε μονά εισαγωγικά.
Έκφραση Παράδειγμα Περιγραφή Σύνταξη

CASE (If)

CASE

WHEN score-par < 0 THEN 'Under Par'

WHEN score-par = 0 THEN 'Par'

WHEN score-par = 1 THEN 'Bogey'

WHEN score-par = 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

Αξιολογεί κάθε συνθήκη WHEN και εάν ικανοποιείται, εκχωρεί την τιμή στην αντίστοιχη έκφραση THEN .

Εάν καμία από τις εκφράσεις WHEN δεν ικανοποιείται, εκχωρεί την προεπιλεγμένη τιμή που καθορίζεται στην έκφραση ELSE . Εάν δεν έχει καθοριστεί έκφραση ELSE , το σύστημα προσθέτει αυτόματα έναν όρο ELSE NULL.

Σημείωση: Ανατρέξτε στην ενότητα Βέλτιστες πρακτικές για χρήση προτάσεων CASE στις Αναλύσεις και τις Απεικονίσεις.

CASE WHEN request_condition1 THEN expr1 ELSE expr2 END

CASE (Switch)

CASE Score-par

WHEN -5 THEN 'Birdie on Par 6'

WHEN -4 THEN 'Must be Tiger'

WHEN -3 THEN 'Three under par'

WHEN -2 THEN 'Two under par'

WHEN -1 THEN 'Birdie'

WHEN 0 THEN 'Par'

WHEN 1 THEN 'Bogey'

WHEN 2 THEN 'Double Bogey'

ELSE 'Triple Bogey or Worse'

END

Αναφέρεται επίσης ως CASE (Lookup). Εξετάζεται η τιμή της πρώτης έκφρασης και έπειτα οι εκφράσεις WHEN . Εάν η πρώτη έκφραση συμφωνεί με οποιαδήποτε έκφραση WHEN , εκχωρεί την τιμή στην αντίστοιχη έκφραση THEN .

Εάν καμία από τις εκφράσεις WHEN δεν συμφωνεί, εκχωρεί την προεπιλεγμένη τιμή που έχει καθοριστεί στην έκφραση ELSE . Εάν δεν έχει καθοριστεί έκφραση ELSE , το σύστημα προσθέτει αυτόματα έναν όρο ELSE NULL.

Εάν η πρώτη έκφραση συμφωνεί με μια έκφραση σε πολλαπλές φράσεις WHEN , εκχωρείται μόνο η έκφραση που ακολουθεί την πρώτη συμφωνία.

Σημείωση Ανατρέξτε στην ενότητα Βέλτιστες πρακτικές για χρήση προτάσεων CASE στις Αναλύσεις και τις Απεικονίσεις.

CASE expr1 WHEN expr2 THEN expr3 ELSE expr4 END

IfCase > ELSE

-

-

ELSE [expr]

IfCase > IFNULL

-

-

IFNULL([expr], [value])

IfCase > NULLIF

-

-

NULLIF([expr], [expr])

IfCase > WHEN

-

-

WHEN [Condition] THEN [expr]

IfCase > CASE

-

-

CASE WHEN [Condition] THEN [expr] END

SwitchCase > ELSE

-

-

ELSE [expr]

SwitchCase >IFNULL

-

-

IFNULL([expr], [value])

SwitchCase > NULLIF

-

-

NULLIF([expr], [expr])

SwitchCase > WHEN

-

-

WHEN [Condition] THEN [expr]

Βέλτιστες πρακτικές για τη χρήση προτάσεων CASE στις Αναλύσεις και τις Απεικονίσεις

Όταν χρησιμοποιείτε προτάσεις CASE σε αναφορές και βιβλία εργασίας, πρέπει να λαμβάνετε υπόψη τις στήλες αναφοράς και τη σειρά συνάθροισης, καθώς επηρεάζουν τον τρόπο υπολογισμού των εκφράσεων και των υποσυνόλων.

  • Γενικά, όταν χρησιμοποιείτε παραστάσεις CASE, βεβαιωθείτε ότι τυχόν στήλες που χρησιμοποιούνται στην παράσταση περιλαμβάνονται στην αναφορά.

  • Εάν η σειρά συνάθροισης είναι σημαντική, τότε αλλάξτε τον κανόνα συνάθροισης αναφοράς από Προεπιλογή σε Άθροισμα.
  • Αν μια συνθήκη πρέπει να αξιολογηθεί πριν από τον υπολογισμό της συνάθροισης (για παράδειγμα, αν η στήλη που φιλτράρεται δεν εμφανίζεται στην αναφορά), χρησιμοποιήστε τη συνάρτηση FILTER.

Παράδειγμα

Αυτό το παράδειγμα χρησιμοποιεί δεδομένα για την Επωνυμία, τον Τύπο προϊόντος και τα Έσοδα.
Ακολουθεί η περιγραφή για GUID-5837A210-154F-4FAC-922D-EBF0A21C349A-default.png
.png''

Για να εφαρμόσετε μια συνθήκη για τον ορισμό των εσόδων από κάμερες με την τιμή 0, δημιουργήστε την ακόλουθη έκφραση υπό συνθήκη: CASE WHEN Product_Type = ‘Camera’ THEN 0 ELSE Revenue END.

Όταν το Product_Type εξαιρείται από την αναφορά, δεν υπάρχουν διαθέσιμα δεδομένα για την αξιολόγηση της έκφρασης, αφού αυτή περιέχει το Product_Type. Τα αποτελέσματα είναι:
Ακολουθεί η περιγραφή για GUID-22873F41-3679-45DF-821D-4167594FE069-default.png
.png''

Προσθέτοντας το PRODUCT_TYPE στην αναφορά και ρυθμίζοντας τη συνάθροιση αναφοράς σε SUM, το αποτέλεσμα συγκεντρώνεται μετά τον υπολογισμό των τιμών βασικού επιπέδου:
Ακολουθεί η περιγραφή για GUID-0BEEE7E1-73CE-4BAA-98A2-683830E18E12-default.png
.png''

Μια εναλλακτική λύση στη χρήση του CASE είναι η χρήση μιας παράστασης φίλτρου: FILTER(Revenue using Product_Type != ‘Camera’). Η παράσταση υπολογίζεται ανεξάρτητα από τις στήλες αναφοράς και οι συγκεντρώσεις εφαρμόζονται μετά τον υπολογισμό:
Ακολουθεί η περιγραφή για GUID-F428B1A7-A9FF-425B-80F1-BB709769CE5C-default.png
.png''